{"id":"22f8fbb4ecdc22c3b9aa001a0131690d","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../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 * The initial owner is set to the address provided by the deployer. This can\n * 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    /**\n     * @dev The caller account is not authorized to perform an operation.\n     */\n    error OwnableUnauthorizedAccount(address account);\n\n    /**\n     * @dev The owner is not a valid owner account. (eg. `address(0)`)\n     */\n    error OwnableInvalidOwner(address owner);\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n     */\n    constructor(address initialOwner) {\n        if (initialOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(initialOwner);\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        if (owner() != _msgSender()) {\n            revert OwnableUnauthorizedAccount(_msgSender());\n        }\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling 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        if (newOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\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/interfaces/draft-IERC6093.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (interfaces/draft-IERC6093.sol)\npragma solidity >=0.8.4;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n    /**\n     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param balance Current balance for the interacting account.\n     * @param needed Minimum amount required to perform a transfer.\n     */\n    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC20InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC20InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n     * @param spender Address that may be allowed to operate on tokens without being their owner.\n     * @param allowance Amount of tokens a `spender` is allowed to operate with.\n     * @param needed Minimum amount required to perform a transfer.\n     */\n    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC20InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n     * @param spender Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n    /**\n     * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n     * Used in balance queries.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC721InvalidOwner(address owner);\n\n    /**\n     * @dev Indicates a `tokenId` whose `owner` is the zero address.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC721NonexistentToken(uint256 tokenId);\n\n    /**\n     * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param tokenId Identifier number of a token.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC721InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC721InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC721InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n    /**\n     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param balance Current balance for the interacting account.\n     * @param needed Minimum amount required to perform a transfer.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC1155InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC1155InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC1155MissingApprovalForAll(address operator, address owner);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC1155InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC1155InvalidOperator(address operator);\n\n    /**\n     * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n     * Used in batch transfers.\n     * @param idsLength Length of the array of token identifiers\n     * @param valuesLength Length of the array of token amounts\n     */\n    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n    mapping(address account => uint256) private _balances;\n\n    mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n    uint256 private _totalSupply;\n\n    string private _name;\n    string private _symbol;\n\n    /**\n     * @dev Sets the values for {name} and {symbol}.\n     *\n     * Both values are immutable: they can only be set once during construction.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() public view virtual returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view virtual returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei. This is the default value returned by this function, unless\n     * it's overridden.\n     *\n     * NOTE: This information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * {IERC20-balanceOf} and {IERC20-transfer}.\n     */\n    function decimals() public view virtual returns (uint8) {\n        return 18;\n    }\n\n    /// @inheritdoc IERC20\n    function totalSupply() public view virtual returns (uint256) {\n        return _totalSupply;\n    }\n\n    /// @inheritdoc IERC20\n    function balanceOf(address account) public view virtual returns (uint256) {\n        return _balances[account];\n    }\n\n    /**\n     * @dev See {IERC20-transfer}.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - the caller must have a balance of at least `value`.\n     */\n    function transfer(address to, uint256 value) public virtual returns (bool) {\n        address owner = _msgSender();\n        _transfer(owner, to, value);\n        return true;\n    }\n\n    /// @inheritdoc IERC20\n    function allowance(address owner, address spender) public view virtual returns (uint256) {\n        return _allowances[owner][spender];\n    }\n\n    /**\n     * @dev See {IERC20-approve}.\n     *\n     * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function approve(address spender, uint256 value) public virtual returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, value);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-transferFrom}.\n     *\n     * Skips emitting an {Approval} event indicating an allowance update. This is not\n     * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n     *\n     * NOTE: Does not update the allowance if the current allowance\n     * is the maximum `uint256`.\n     *\n     * Requirements:\n     *\n     * - `from` and `to` cannot be the zero address.\n     * - `from` must have a balance of at least `value`.\n     * - the caller must have allowance for ``from``'s tokens of at least\n     * `value`.\n     */\n    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n        address spender = _msgSender();\n        _spendAllowance(from, spender, value);\n        _transfer(from, to, value);\n        return true;\n    }\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to`.\n     *\n     * This internal function is equivalent to {transfer}, and can be used to\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\n     *\n     * Emits a {Transfer} event.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead.\n     */\n    function _transfer(address from, address to, uint256 value) internal {\n        if (from == address(0)) {\n            revert ERC20InvalidSender(address(0));\n        }\n        if (to == address(0)) {\n            revert ERC20InvalidReceiver(address(0));\n        }\n        _update(from, to, value);\n    }\n\n    /**\n     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n     * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n     * this function.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _update(address from, address to, uint256 value) internal virtual {\n        if (from == address(0)) {\n            // Overflow check required: The rest of the code assumes that totalSupply never overflows\n            _totalSupply += value;\n        } else {\n            uint256 fromBalance = _balances[from];\n            if (fromBalance < value) {\n                revert ERC20InsufficientBalance(from, fromBalance, value);\n            }\n            unchecked {\n                // Overflow not possible: value <= fromBalance <= totalSupply.\n                _balances[from] = fromBalance - value;\n            }\n        }\n\n        if (to == address(0)) {\n            unchecked {\n                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n                _totalSupply -= value;\n            }\n        } else {\n            unchecked {\n                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n                _balances[to] += value;\n            }\n        }\n\n        emit Transfer(from, to, value);\n    }\n\n    /**\n     * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n     * Relies on the `_update` mechanism\n     *\n     * Emits a {Transfer} event with `from` set to the zero address.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead.\n     */\n    function _mint(address account, uint256 value) internal {\n        if (account == address(0)) {\n            revert ERC20InvalidReceiver(address(0));\n        }\n        _update(address(0), account, value);\n    }\n\n    /**\n     * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n     * Relies on the `_update` mechanism.\n     *\n     * Emits a {Transfer} event with `to` set to the zero address.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead\n     */\n    function _burn(address account, uint256 value) internal {\n        if (account == address(0)) {\n            revert ERC20InvalidSender(address(0));\n        }\n        _update(account, address(0), value);\n    }\n\n    /**\n     * @dev Sets `value` as the allowance of `spender` over the `owner`'s tokens.\n     *\n     * This internal function is equivalent to `approve`, and can be used to\n     * e.g. set automatic allowances for certain subsystems, etc.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `owner` cannot be the zero address.\n     * - `spender` cannot be the zero address.\n     *\n     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n     */\n    function _approve(address owner, address spender, uint256 value) internal {\n        _approve(owner, spender, value, true);\n    }\n\n    /**\n     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n     *\n     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n     * `Approval` event during `transferFrom` operations.\n     *\n     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n     * true using the following override:\n     *\n     * ```solidity\n     * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n     *     super._approve(owner, spender, value, true);\n     * }\n     * ```\n     *\n     * Requirements are the same as {_approve}.\n     */\n    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n        if (owner == address(0)) {\n            revert ERC20InvalidApprover(address(0));\n        }\n        if (spender == address(0)) {\n            revert ERC20InvalidSpender(address(0));\n        }\n        _allowances[owner][spender] = value;\n        if (emitEvent) {\n            emit Approval(owner, spender, value);\n        }\n    }\n\n    /**\n     * @dev Updates `owner`'s allowance for `spender` based on spent `value`.\n     *\n     * Does not update the allowance value in case of infinite allowance.\n     * Revert if not enough allowance is available.\n     *\n     * Does not emit an {Approval} event.\n     */\n    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance < type(uint256).max) {\n            if (currentAllowance < value) {\n                revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n            }\n            unchecked {\n                _approve(owner, spender, currentAllowance - value, false);\n            }\n        }\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity >=0.6.2;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the symbol of the token.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the decimals places of the token.\n     */\n    function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/IERC20.sol)\n\npragma solidity >=0.4.16;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\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 value of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the value of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens as the allowance of `spender` over the\n     * 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 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the\n     * allowance mechanism. `value` 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(address from, address to, uint256 value) external returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\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    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n}\n"},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Contract module that helps prevent reentrant calls to a function.\n *\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n * available, which can be applied to functions to make sure there are no nested\n * (reentrant) calls to them.\n *\n * Note that because there is a single `nonReentrant` guard, functions marked as\n * `nonReentrant` may not call one another. This can be worked around by making\n * those functions `private`, and then adding `external` `nonReentrant` entry\n * points to them.\n *\n * TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,\n * consider using {ReentrancyGuardTransient} instead.\n *\n * TIP: If you would like to learn more about reentrancy and alternative ways\n * to protect against it, check out our blog post\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\n */\nabstract contract ReentrancyGuard {\n    // Booleans are more expensive than uint256 or any type that takes up a full\n    // word because each write operation emits an extra SLOAD to first read the\n    // slot's contents, replace the bits taken up by the boolean, and then write\n    // back. This is the compiler's defense against contract upgrades and\n    // pointer aliasing, and it cannot be disabled.\n\n    // The values being non-zero value makes deployment a bit more expensive,\n    // but in exchange the refund on every call to nonReentrant will be lower in\n    // amount. Since refunds are capped to a percentage of the total\n    // transaction's gas, it is best to keep them low in cases like this one, to\n    // increase the likelihood of the full refund coming into effect.\n    uint256 private constant NOT_ENTERED = 1;\n    uint256 private constant ENTERED = 2;\n\n    uint256 private _status;\n\n    /**\n     * @dev Unauthorized reentrant call.\n     */\n    error ReentrancyGuardReentrantCall();\n\n    constructor() {\n        _status = NOT_ENTERED;\n    }\n\n    /**\n     * @dev Prevents a contract from calling itself, directly or indirectly.\n     * Calling a `nonReentrant` function from another `nonReentrant`\n     * function is not supported. It is possible to prevent this from happening\n     * by making the `nonReentrant` function external, and making it call a\n     * `private` function that does the actual work.\n     */\n    modifier nonReentrant() {\n        _nonReentrantBefore();\n        _;\n        _nonReentrantAfter();\n    }\n\n    function _nonReentrantBefore() private {\n        // On the first call to nonReentrant, _status will be NOT_ENTERED\n        if (_status == ENTERED) {\n            revert ReentrancyGuardReentrantCall();\n        }\n\n        // Any calls to nonReentrant after this point will fail\n        _status = ENTERED;\n    }\n\n    function _nonReentrantAfter() private {\n        // By storing the original value once again, a refund is triggered (see\n        // https://eips.ethereum.org/EIPS/eip-2200)\n        _status = NOT_ENTERED;\n    }\n\n    /**\n     * @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n     * `nonReentrant` function in the call stack.\n     */\n    function _reentrancyGuardEntered() internal view returns (bool) {\n        return _status == ENTERED;\n    }\n}\n"},"contracts/KDNStaking.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\r\n\r\ncontract KDNStaking is Ownable, ReentrancyGuard {\r\n    IERC20 public kdnToken;\r\n\r\n    struct Package {\r\n        uint256 amount;\r\n        uint256 duration; // in days\r\n        uint256 totalProfitPercentage; // e.g., 10 for 10%\r\n    }\r\n\r\n    struct StakeInfo {\r\n        uint256 packageIndex;\r\n        uint256 startTime;\r\n        uint256 lastClaimTime;\r\n        uint256 amount;\r\n        uint256 totalProfitToReceive;\r\n        uint256 profitClaimed;\r\n        bool isActive;\r\n    }\r\n\r\n    struct User {\r\n        address upline;\r\n        uint256 referralBonusBalance;\r\n        uint256 managerBonusBalance;\r\n        uint256 groupTurnover;\r\n        uint256 currentManagerLevel;\r\n        StakeInfo[] stakes;\r\n    }\r\n\r\n    Package[] public packages;\r\n    mapping(address => User) public users;\r\n    uint256[] public referralPercentages = [8, 5, 3, 2, 1];\r\n\r\n    event Staked(address indexed user, uint256 packageIndex, uint256 amount);\r\n    event ProfitClaimed(address indexed user, uint256 amount);\r\n    event ReferralBonusPaid(address indexed upline, address indexed downline, uint256 amount, uint256 level);\r\n    event ManagerBonusClaimed(address indexed user, uint256 amount, uint256 level);\r\n\r\n    constructor(address _kdnToken) Ownable(msg.sender) {\r\n        kdnToken = IERC20(_kdnToken);\r\n\r\n        // Initialize packages based on Marketing Plan\r\n        packages.push(Package(10 * 10**18, 120, 10));   // Starter\r\n        packages.push(Package(50 * 10**18, 110, 15));   // Basic\r\n        packages.push(Package(100 * 10**18, 100, 20));  // Silver\r\n        packages.push(Package(500 * 10**18, 100, 20));  // Gold\r\n        packages.push(Package(1000 * 10**18, 90, 20));  // Platinum\r\n        packages.push(Package(3000 * 10**18, 80, 25));  // Diamond\r\n        packages.push(Package(5000 * 10**18, 70, 35));  // Elite\r\n    }\r\n\r\n    function register(address _upline) external {\r\n        require(users[msg.sender].upline == address(0), \"Already registered\");\r\n        require(_upline != msg.sender, \"Cannot refer yourself\");\r\n        require(users[_upline].stakes.length > 0 || _upline == owner(), \"Invalid upline\");\r\n        \r\n        users[msg.sender].upline = _upline;\r\n    }\r\n\r\n    function stake(uint256 _packageIndex) external nonReentrant {\r\n        require(_packageIndex < packages.length, \"Invalid package\");\r\n        Package memory pkg = packages[_packageIndex];\r\n        \r\n        require(kdnToken.transferFrom(msg.sender, address(this), pkg.amount), \"Transfer failed\");\r\n\r\n        uint256 totalProfit = (pkg.amount * pkg.totalProfitPercentage) / 100;\r\n        \r\n        users[msg.sender].stakes.push(StakeInfo({\r\n            packageIndex: _packageIndex,\r\n            startTime: block.timestamp,\r\n            lastClaimTime: block.timestamp,\r\n            amount: pkg.amount,\r\n            totalProfitToReceive: totalProfit,\r\n            profitClaimed: 0,\r\n            isActive: true\r\n        }));\r\n\r\n        _distributeReferralBonus(msg.sender, pkg.amount);\r\n        _updateGroupTurnover(msg.sender, pkg.amount);\r\n\r\n        emit Staked(msg.sender, _packageIndex, pkg.amount);\r\n    }\r\n\r\n    function _distributeReferralBonus(address _user, uint256 _amount) internal {\r\n        address currentUpline = users[_user].upline;\r\n        for (uint256 i = 0; i < 5; i++) {\r\n            if (currentUpline == address(0)) break;\r\n            \r\n            uint256 bonus = (_amount * referralPercentages[i]) / 100;\r\n            users[currentUpline].referralBonusBalance += bonus;\r\n            \r\n            emit ReferralBonusPaid(currentUpline, _user, bonus, i + 1);\r\n            currentUpline = users[currentUpline].upline;\r\n        }\r\n    }\r\n\r\n    function _updateGroupTurnover(address _user, uint256 _amount) internal {\r\n        address currentUpline = users[_user].upline;\r\n        while (currentUpline != address(0)) {\r\n            users[currentUpline].groupTurnover += _amount;\r\n            currentUpline = users[currentUpline].upline;\r\n        }\r\n    }\r\n\r\n    function claimProfit(uint256 _stakeIndex) external nonReentrant {\r\n        User storage user = users[msg.sender];\r\n        require(_stakeIndex < user.stakes.length, \"Invalid stake index\");\r\n        StakeInfo storage s = user.stakes[_stakeIndex];\r\n        require(s.isActive, \"Stake not active\");\r\n\r\n        uint256 currentTime = block.timestamp;\r\n        Package memory pkg = packages[s.packageIndex];\r\n        \r\n        uint256 elapsedTime = currentTime - s.lastClaimTime;\r\n        uint256 totalDuration = pkg.duration * 1 days;\r\n        \r\n        if (currentTime > s.startTime + totalDuration) {\r\n            currentTime = s.startTime + totalDuration;\r\n            elapsedTime = currentTime - s.lastClaimTime;\r\n        }\r\n\r\n        uint256 dailyProfit = s.totalProfitToReceive / pkg.duration;\r\n        uint256 profitToClaim = (dailyProfit * elapsedTime) / 1 days;\r\n\r\n        require(profitToClaim > 0, \"No profit to claim yet\");\r\n\r\n        s.profitClaimed += profitToClaim;\r\n        s.lastClaimTime = block.timestamp;\r\n\r\n        if (s.profitClaimed >= s.totalProfitToReceive) {\r\n            s.isActive = false;\r\n            // Return principal + final profit\r\n            uint256 totalReturn = s.amount + profitToClaim;\r\n            require(kdnToken.transfer(msg.sender, totalReturn), \"Final transfer failed\");\r\n        } else {\r\n            require(kdnToken.transfer(msg.sender, profitToClaim), \"Transfer failed\");\r\n        }\r\n\r\n        emit ProfitClaimed(msg.sender, profitToClaim);\r\n    }\r\n\r\n    function withdrawReferralBonus() external nonReentrant {\r\n        uint256 amount = users[msg.sender].referralBonusBalance;\r\n        require(amount > 0, \"No bonus to withdraw\");\r\n        \r\n        users[msg.sender].referralBonusBalance = 0;\r\n        require(kdnToken.transfer(msg.sender, amount), \"Transfer failed\");\r\n    }\r\n\r\n    function claimManagerBonus() external nonReentrant {\r\n        User storage user = users[msg.sender];\r\n        uint256 turnover = user.groupTurnover;\r\n        uint256 currentLevel = user.currentManagerLevel;\r\n        uint256 bonusPercentage = 0;\r\n        uint256 nextLevel = currentLevel + 1;\r\n\r\n        if (nextLevel == 1 && turnover >= 1000 * 10**18) {\r\n            bonusPercentage = 3;\r\n        } else if (nextLevel == 2 && turnover >= 3000 * 10**18) {\r\n            bonusPercentage = 5;\r\n        } else if (nextLevel == 3 && turnover >= 5000 * 10**18) {\r\n            bonusPercentage = 7;\r\n        } else if (nextLevel == 4 && turnover >= 10000 * 10**18) {\r\n            bonusPercentage = 10;\r\n        } else {\r\n            revert(\"Target not reached or level already claimed\");\r\n        }\r\n\r\n        uint256 bonusAmount = (turnover * bonusPercentage) / 100;\r\n        user.currentManagerLevel = nextLevel;\r\n        \r\n        require(kdnToken.transfer(msg.sender, bonusAmount), \"Transfer failed\");\r\n        emit ManagerBonusClaimed(msg.sender, bonusAmount, nextLevel);\r\n    }\r\n}\r\n"},"contracts/KDNToken.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ncontract KDNToken is ERC20, Ownable {\r\n    constructor() ERC20(\"KUZADESIGN\", \"KDN\") Ownable(msg.sender) {\r\n        _mint(msg.sender, 1000000 * 10**decimals());\r\n    }\r\n\r\n    function mint(address to, uint256 amount) public onlyOwner {\r\n        _mint(to, amount);\r\n    }\r\n}\r\n"}},"settings":{"evmVersion":"paris","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[933],"Ownable":[147]},"id":148,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:0"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":148,"sourceUnit":934,"src":"128:45:0","symbolAliases":[{"foreign":{"id":2,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"136:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5,"name":"Context","nameLocations":["692:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":933,"src":"692:7:0"},"id":6,"nodeType":"InheritanceSpecifier","src":"692:7:0"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4,"nodeType":"StructuredDocumentation","src":"175:487:0","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 The initial owner is set to the address provided by the deployer. This can\n 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":147,"linearizedBaseContracts":[147,933],"name":"Ownable","nameLocation":"681:7:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8,"mutability":"mutable","name":"_owner","nameLocation":"722:6:0","nodeType":"VariableDeclaration","scope":147,"src":"706:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"735:85:0","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":13,"name":"OwnableUnauthorizedAccount","nameLocation":"831:26:0","nodeType":"ErrorDefinition","parameters":{"id":12,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11,"mutability":"mutable","name":"account","nameLocation":"866:7:0","nodeType":"VariableDeclaration","scope":13,"src":"858:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:0"},"src":"825:50:0"},{"documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"881:82:0","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":18,"name":"OwnableInvalidOwner","nameLocation":"974:19:0","nodeType":"ErrorDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"mutability":"mutable","name":"owner","nameLocation":"1002:5:0","nodeType":"VariableDeclaration","scope":18,"src":"994:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:0"},"src":"968:41:0"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":24,"name":"OwnershipTransferred","nameLocation":"1021:20:0","nodeType":"EventDefinition","parameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:0","nodeType":"VariableDeclaration","scope":24,"src":"1042:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:0","nodeType":"VariableDeclaration","scope":24,"src":"1073:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:0"},"src":"1015:84:0"},{"body":{"id":49,"nodeType":"Block","src":"1259:153:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":35,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1273:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:0","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":32,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:0","typeDescriptions":{}}},"id":34,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44,"nodeType":"IfStatement","src":"1269:95:0","trueBody":{"id":43,"nodeType":"Block","src":"1301:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:0","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":38,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:0","typeDescriptions":{}}},"id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1322:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42,"nodeType":"RevertStatement","src":"1315:38:0"}]}},{"expression":{"arguments":[{"id":46,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1392:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1373:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48,"nodeType":"ExpressionStatement","src":"1373:32:0"}]},"documentation":{"id":25,"nodeType":"StructuredDocumentation","src":"1105:115:0","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":50,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:0","nodeType":"VariableDeclaration","scope":50,"src":"1237:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:0"},"returnParameters":{"id":29,"nodeType":"ParameterList","parameters":[],"src":"1259:0:0"},"scope":147,"src":"1225:187:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":57,"nodeType":"Block","src":"1521:41:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":53,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"1531:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"1531:13:0"},{"id":56,"nodeType":"PlaceholderStatement","src":"1554:1:0"}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1418:77:0","text":" @dev Throws if called by any account other than the owner."},"id":58,"name":"onlyOwner","nameLocation":"1509:9:0","nodeType":"ModifierDefinition","parameters":{"id":52,"nodeType":"ParameterList","parameters":[],"src":"1518:2:0"},"src":"1500:62:0","virtual":false,"visibility":"internal"},{"body":{"id":66,"nodeType":"Block","src":"1693:30:0","statements":[{"expression":{"id":64,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"1710:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":63,"id":65,"nodeType":"Return","src":"1703:13:0"}]},"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"1568:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":67,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:0","nodeType":"FunctionDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[],"src":"1652:2:0"},"returnParameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67,"src":"1684:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:0"},"scope":147,"src":"1638:85:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":83,"nodeType":"Block","src":"1841:117:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":71,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1855:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":73,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":915,"src":"1866:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82,"nodeType":"IfStatement","src":"1851:101:0","trueBody":{"id":81,"nodeType":"Block","src":"1880:72:0","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":77,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":915,"src":"1928:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1901:26:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80,"nodeType":"RevertStatement","src":"1894:47:0"}]}}]},"documentation":{"id":68,"nodeType":"StructuredDocumentation","src":"1729:62:0","text":" @dev Throws if the sender is not the owner."},"id":84,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:0","nodeType":"FunctionDefinition","parameters":{"id":69,"nodeType":"ParameterList","parameters":[],"src":"1816:2:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"1841:0:0"},"scope":147,"src":"1796:162:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":97,"nodeType":"Block","src":"2347:47:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":93,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:0","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":92,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:0","typeDescriptions":{}}},"id":94,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2357:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96,"nodeType":"ExpressionStatement","src":"2357:30:0"}]},"documentation":{"id":85,"nodeType":"StructuredDocumentation","src":"1964:324:0","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":98,"implemented":true,"kind":"function","modifiers":[{"id":88,"kind":"modifierInvocation","modifierName":{"id":87,"name":"onlyOwner","nameLocations":["2337:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2337:9:0"},"nodeType":"ModifierInvocation","src":"2337:9:0"}],"name":"renounceOwnership","nameLocation":"2302:17:0","nodeType":"FunctionDefinition","parameters":{"id":86,"nodeType":"ParameterList","parameters":[],"src":"2319:2:0"},"returnParameters":{"id":89,"nodeType":"ParameterList","parameters":[],"src":"2347:0:0"},"scope":147,"src":"2293:101:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":125,"nodeType":"Block","src":"2613:145:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":106,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2627:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647:1:0","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":108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:0","typeDescriptions":{}}},"id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":120,"nodeType":"IfStatement","src":"2623:91:0","trueBody":{"id":119,"nodeType":"Block","src":"2651:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:1:0","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":114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:0","typeDescriptions":{}}},"id":116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":112,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"2672:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118,"nodeType":"RevertStatement","src":"2665:38:0"}]}},{"expression":{"arguments":[{"id":122,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2742:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2723:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":124,"nodeType":"ExpressionStatement","src":"2723:28:0"}]},"documentation":{"id":99,"nodeType":"StructuredDocumentation","src":"2400:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":126,"implemented":true,"kind":"function","modifiers":[{"id":104,"kind":"modifierInvocation","modifierName":{"id":103,"name":"onlyOwner","nameLocations":["2603:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2603:9:0"},"nodeType":"ModifierInvocation","src":"2603:9:0"}],"name":"transferOwnership","nameLocation":"2552:17:0","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:0","nodeType":"VariableDeclaration","scope":126,"src":"2570:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:0"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[],"src":"2613:0:0"},"scope":147,"src":"2543:215:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":145,"nodeType":"Block","src":"2975:124:0","statements":[{"assignments":[133],"declarations":[{"constant":false,"id":133,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:0","nodeType":"VariableDeclaration","scope":145,"src":"2985:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":132,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":135,"initialValue":{"id":134,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3004:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:0"},{"expression":{"id":138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":136,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3020:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":137,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3029:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":139,"nodeType":"ExpressionStatement","src":"3020:17:0"},{"eventCall":{"arguments":[{"id":141,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3073:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":142,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3083:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":140,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"3052:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":144,"nodeType":"EmitStatement","src":"3047:45:0"}]},"documentation":{"id":127,"nodeType":"StructuredDocumentation","src":"2764:143:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":146,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:0","nodeType":"FunctionDefinition","parameters":{"id":130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:0","nodeType":"VariableDeclaration","scope":146,"src":"2940:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":128,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:0"},"returnParameters":{"id":131,"nodeType":"ParameterList","parameters":[],"src":"2975:0:0"},"scope":147,"src":"2912:187:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":148,"src":"663:2438:0","usedErrors":[13,18],"usedEvents":[24]}],"src":"102:3000:0"},"id":0},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[284],"IERC20Errors":[189],"IERC721Errors":[237]},"id":285,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":149,"literals":["solidity",">=","0.8",".4"],"nodeType":"PragmaDirective","src":"112:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":150,"nodeType":"StructuredDocumentation","src":"138:141:1","text":" @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens."},"fullyImplemented":true,"id":189,"linearizedBaseContracts":[189],"name":"IERC20Errors","nameLocation":"290:12:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":151,"nodeType":"StructuredDocumentation","src":"309:309:1","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","id":159,"name":"ERC20InsufficientBalance","nameLocation":"629:24:1","nodeType":"ErrorDefinition","parameters":{"id":158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":153,"mutability":"mutable","name":"sender","nameLocation":"662:6:1","nodeType":"VariableDeclaration","scope":159,"src":"654:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":152,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":155,"mutability":"mutable","name":"balance","nameLocation":"678:7:1","nodeType":"VariableDeclaration","scope":159,"src":"670:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":154,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":157,"mutability":"mutable","name":"needed","nameLocation":"695:6:1","nodeType":"VariableDeclaration","scope":159,"src":"687:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":156,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"653:49:1"},"src":"623:80:1"},{"documentation":{"id":160,"nodeType":"StructuredDocumentation","src":"709:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":164,"name":"ERC20InvalidSender","nameLocation":"872:18:1","nodeType":"ErrorDefinition","parameters":{"id":163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":162,"mutability":"mutable","name":"sender","nameLocation":"899:6:1","nodeType":"VariableDeclaration","scope":164,"src":"891:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":161,"name":"address","nodeType":"ElementaryTypeName","src":"891:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"890:16:1"},"src":"866:41:1"},{"documentation":{"id":165,"nodeType":"StructuredDocumentation","src":"913:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","id":169,"name":"ERC20InvalidReceiver","nameLocation":"1083:20:1","nodeType":"ErrorDefinition","parameters":{"id":168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":167,"mutability":"mutable","name":"receiver","nameLocation":"1112:8:1","nodeType":"VariableDeclaration","scope":169,"src":"1104:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":166,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1103:18:1"},"src":"1077:45:1"},{"documentation":{"id":170,"nodeType":"StructuredDocumentation","src":"1128:345:1","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","id":178,"name":"ERC20InsufficientAllowance","nameLocation":"1484:26:1","nodeType":"ErrorDefinition","parameters":{"id":177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":172,"mutability":"mutable","name":"spender","nameLocation":"1519:7:1","nodeType":"VariableDeclaration","scope":178,"src":"1511:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":171,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":174,"mutability":"mutable","name":"allowance","nameLocation":"1536:9:1","nodeType":"VariableDeclaration","scope":178,"src":"1528:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":176,"mutability":"mutable","name":"needed","nameLocation":"1555:6:1","nodeType":"VariableDeclaration","scope":178,"src":"1547:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":175,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1510:52:1"},"src":"1478:85:1"},{"documentation":{"id":179,"nodeType":"StructuredDocumentation","src":"1569:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","id":183,"name":"ERC20InvalidApprover","nameLocation":"1754:20:1","nodeType":"ErrorDefinition","parameters":{"id":182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":181,"mutability":"mutable","name":"approver","nameLocation":"1783:8:1","nodeType":"VariableDeclaration","scope":183,"src":"1775:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":180,"name":"address","nodeType":"ElementaryTypeName","src":"1775:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1774:18:1"},"src":"1748:45:1"},{"documentation":{"id":184,"nodeType":"StructuredDocumentation","src":"1799:195:1","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","id":188,"name":"ERC20InvalidSpender","nameLocation":"2005:19:1","nodeType":"ErrorDefinition","parameters":{"id":187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":186,"mutability":"mutable","name":"spender","nameLocation":"2033:7:1","nodeType":"VariableDeclaration","scope":188,"src":"2025:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":185,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2024:17:1"},"src":"1999:43:1"}],"scope":285,"src":"280:1764:1","usedErrors":[159,164,169,178,183,188],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":190,"nodeType":"StructuredDocumentation","src":"2046:143:1","text":" @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens."},"fullyImplemented":true,"id":237,"linearizedBaseContracts":[237],"name":"IERC721Errors","nameLocation":"2200:13:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":191,"nodeType":"StructuredDocumentation","src":"2220:219:1","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":195,"name":"ERC721InvalidOwner","nameLocation":"2450:18:1","nodeType":"ErrorDefinition","parameters":{"id":194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":193,"mutability":"mutable","name":"owner","nameLocation":"2477:5:1","nodeType":"VariableDeclaration","scope":195,"src":"2469:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":192,"name":"address","nodeType":"ElementaryTypeName","src":"2469:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2468:15:1"},"src":"2444:40:1"},{"documentation":{"id":196,"nodeType":"StructuredDocumentation","src":"2490:132:1","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":200,"name":"ERC721NonexistentToken","nameLocation":"2633:22:1","nodeType":"ErrorDefinition","parameters":{"id":199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":198,"mutability":"mutable","name":"tokenId","nameLocation":"2664:7:1","nodeType":"VariableDeclaration","scope":200,"src":"2656:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":197,"name":"uint256","nodeType":"ElementaryTypeName","src":"2656:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2655:17:1"},"src":"2627:46:1"},{"documentation":{"id":201,"nodeType":"StructuredDocumentation","src":"2679:289:1","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","id":209,"name":"ERC721IncorrectOwner","nameLocation":"2979:20:1","nodeType":"ErrorDefinition","parameters":{"id":208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":203,"mutability":"mutable","name":"sender","nameLocation":"3008:6:1","nodeType":"VariableDeclaration","scope":209,"src":"3000:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":202,"name":"address","nodeType":"ElementaryTypeName","src":"3000:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":205,"mutability":"mutable","name":"tokenId","nameLocation":"3024:7:1","nodeType":"VariableDeclaration","scope":209,"src":"3016:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":204,"name":"uint256","nodeType":"ElementaryTypeName","src":"3016:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":207,"mutability":"mutable","name":"owner","nameLocation":"3041:5:1","nodeType":"VariableDeclaration","scope":209,"src":"3033:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206,"name":"address","nodeType":"ElementaryTypeName","src":"3033:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2999:48:1"},"src":"2973:75:1"},{"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"3054:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":214,"name":"ERC721InvalidSender","nameLocation":"3217:19:1","nodeType":"ErrorDefinition","parameters":{"id":213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":212,"mutability":"mutable","name":"sender","nameLocation":"3245:6:1","nodeType":"VariableDeclaration","scope":214,"src":"3237:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":211,"name":"address","nodeType":"ElementaryTypeName","src":"3237:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3236:16:1"},"src":"3211:42:1"},{"documentation":{"id":215,"nodeType":"StructuredDocumentation","src":"3259:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","id":219,"name":"ERC721InvalidReceiver","nameLocation":"3429:21:1","nodeType":"ErrorDefinition","parameters":{"id":218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":217,"mutability":"mutable","name":"receiver","nameLocation":"3459:8:1","nodeType":"VariableDeclaration","scope":219,"src":"3451:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":216,"name":"address","nodeType":"ElementaryTypeName","src":"3451:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3450:18:1"},"src":"3423:46:1"},{"documentation":{"id":220,"nodeType":"StructuredDocumentation","src":"3475:247:1","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","id":226,"name":"ERC721InsufficientApproval","nameLocation":"3733:26:1","nodeType":"ErrorDefinition","parameters":{"id":225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":222,"mutability":"mutable","name":"operator","nameLocation":"3768:8:1","nodeType":"VariableDeclaration","scope":226,"src":"3760:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":221,"name":"address","nodeType":"ElementaryTypeName","src":"3760:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":224,"mutability":"mutable","name":"tokenId","nameLocation":"3786:7:1","nodeType":"VariableDeclaration","scope":226,"src":"3778:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":223,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3759:35:1"},"src":"3727:68:1"},{"documentation":{"id":227,"nodeType":"StructuredDocumentation","src":"3801:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","id":231,"name":"ERC721InvalidApprover","nameLocation":"3986:21:1","nodeType":"ErrorDefinition","parameters":{"id":230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":229,"mutability":"mutable","name":"approver","nameLocation":"4016:8:1","nodeType":"VariableDeclaration","scope":231,"src":"4008:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":228,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4007:18:1"},"src":"3980:46:1"},{"documentation":{"id":232,"nodeType":"StructuredDocumentation","src":"4032:197:1","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","id":236,"name":"ERC721InvalidOperator","nameLocation":"4240:21:1","nodeType":"ErrorDefinition","parameters":{"id":235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":234,"mutability":"mutable","name":"operator","nameLocation":"4270:8:1","nodeType":"VariableDeclaration","scope":236,"src":"4262:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":233,"name":"address","nodeType":"ElementaryTypeName","src":"4262:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4261:18:1"},"src":"4234:46:1"}],"scope":285,"src":"2190:2092:1","usedErrors":[195,200,209,214,219,226,231,236],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":238,"nodeType":"StructuredDocumentation","src":"4284:145:1","text":" @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens."},"fullyImplemented":true,"id":284,"linearizedBaseContracts":[284],"name":"IERC1155Errors","nameLocation":"4440:14:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":239,"nodeType":"StructuredDocumentation","src":"4461:361:1","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."},"errorSelector":"03dee4c5","id":249,"name":"ERC1155InsufficientBalance","nameLocation":"4833:26:1","nodeType":"ErrorDefinition","parameters":{"id":248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":241,"mutability":"mutable","name":"sender","nameLocation":"4868:6:1","nodeType":"VariableDeclaration","scope":249,"src":"4860:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":240,"name":"address","nodeType":"ElementaryTypeName","src":"4860:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":243,"mutability":"mutable","name":"balance","nameLocation":"4884:7:1","nodeType":"VariableDeclaration","scope":249,"src":"4876:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":242,"name":"uint256","nodeType":"ElementaryTypeName","src":"4876:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":245,"mutability":"mutable","name":"needed","nameLocation":"4901:6:1","nodeType":"VariableDeclaration","scope":249,"src":"4893:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":244,"name":"uint256","nodeType":"ElementaryTypeName","src":"4893:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":247,"mutability":"mutable","name":"tokenId","nameLocation":"4917:7:1","nodeType":"VariableDeclaration","scope":249,"src":"4909:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":246,"name":"uint256","nodeType":"ElementaryTypeName","src":"4909:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4859:66:1"},"src":"4827:99:1"},{"documentation":{"id":250,"nodeType":"StructuredDocumentation","src":"4932:152:1","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":254,"name":"ERC1155InvalidSender","nameLocation":"5095:20:1","nodeType":"ErrorDefinition","parameters":{"id":253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":252,"mutability":"mutable","name":"sender","nameLocation":"5124:6:1","nodeType":"VariableDeclaration","scope":254,"src":"5116:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":251,"name":"address","nodeType":"ElementaryTypeName","src":"5116:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5115:16:1"},"src":"5089:43:1"},{"documentation":{"id":255,"nodeType":"StructuredDocumentation","src":"5138:159:1","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","id":259,"name":"ERC1155InvalidReceiver","nameLocation":"5308:22:1","nodeType":"ErrorDefinition","parameters":{"id":258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":257,"mutability":"mutable","name":"receiver","nameLocation":"5339:8:1","nodeType":"VariableDeclaration","scope":259,"src":"5331:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":256,"name":"address","nodeType":"ElementaryTypeName","src":"5331:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5330:18:1"},"src":"5302:47:1"},{"documentation":{"id":260,"nodeType":"StructuredDocumentation","src":"5355:256:1","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"e237d922","id":266,"name":"ERC1155MissingApprovalForAll","nameLocation":"5622:28:1","nodeType":"ErrorDefinition","parameters":{"id":265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":262,"mutability":"mutable","name":"operator","nameLocation":"5659:8:1","nodeType":"VariableDeclaration","scope":266,"src":"5651:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":261,"name":"address","nodeType":"ElementaryTypeName","src":"5651:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":264,"mutability":"mutable","name":"owner","nameLocation":"5677:5:1","nodeType":"VariableDeclaration","scope":266,"src":"5669:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":263,"name":"address","nodeType":"ElementaryTypeName","src":"5669:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5650:33:1"},"src":"5616:68:1"},{"documentation":{"id":267,"nodeType":"StructuredDocumentation","src":"5690:174:1","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","id":271,"name":"ERC1155InvalidApprover","nameLocation":"5875:22:1","nodeType":"ErrorDefinition","parameters":{"id":270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":269,"mutability":"mutable","name":"approver","nameLocation":"5906:8:1","nodeType":"VariableDeclaration","scope":271,"src":"5898:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":268,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5897:18:1"},"src":"5869:47:1"},{"documentation":{"id":272,"nodeType":"StructuredDocumentation","src":"5922:197:1","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","id":276,"name":"ERC1155InvalidOperator","nameLocation":"6130:22:1","nodeType":"ErrorDefinition","parameters":{"id":275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":274,"mutability":"mutable","name":"operator","nameLocation":"6161:8:1","nodeType":"VariableDeclaration","scope":276,"src":"6153:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":273,"name":"address","nodeType":"ElementaryTypeName","src":"6153:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6152:18:1"},"src":"6124:47:1"},{"documentation":{"id":277,"nodeType":"StructuredDocumentation","src":"6177:280:1","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","id":283,"name":"ERC1155InvalidArrayLength","nameLocation":"6468:25:1","nodeType":"ErrorDefinition","parameters":{"id":282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":279,"mutability":"mutable","name":"idsLength","nameLocation":"6502:9:1","nodeType":"VariableDeclaration","scope":283,"src":"6494:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":278,"name":"uint256","nodeType":"ElementaryTypeName","src":"6494:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":281,"mutability":"mutable","name":"valuesLength","nameLocation":"6521:12:1","nodeType":"VariableDeclaration","scope":283,"src":"6513:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":280,"name":"uint256","nodeType":"ElementaryTypeName","src":"6513:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6493:41:1"},"src":"6462:73:1"}],"scope":285,"src":"4430:2107:1","usedErrors":[249,254,259,266,271,276,283],"usedEvents":[]}],"src":"112:6426:1"},"id":1},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[933],"ERC20":[799],"IERC20":[877],"IERC20Errors":[189],"IERC20Metadata":[903]},"id":800,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":286,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"105:24:2"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":288,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":800,"sourceUnit":878,"src":"131:36:2","symbolAliases":[{"foreign":{"id":287,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"139:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":290,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":800,"sourceUnit":904,"src":"168:63:2","symbolAliases":[{"foreign":{"id":289,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"176:14:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":292,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":800,"sourceUnit":934,"src":"232:48:2","symbolAliases":[{"foreign":{"id":291,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"240:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":294,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":800,"sourceUnit":285,"src":"281:65:2","symbolAliases":[{"foreign":{"id":293,"name":"IERC20Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"289:12:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":296,"name":"Context","nameLocations":["1133:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":933,"src":"1133:7:2"},"id":297,"nodeType":"InheritanceSpecifier","src":"1133:7:2"},{"baseName":{"id":298,"name":"IERC20","nameLocations":["1142:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":877,"src":"1142:6:2"},"id":299,"nodeType":"InheritanceSpecifier","src":"1142:6:2"},{"baseName":{"id":300,"name":"IERC20Metadata","nameLocations":["1150:14:2"],"nodeType":"IdentifierPath","referencedDeclaration":903,"src":"1150:14:2"},"id":301,"nodeType":"InheritanceSpecifier","src":"1150:14:2"},{"baseName":{"id":302,"name":"IERC20Errors","nameLocations":["1166:12:2"],"nodeType":"IdentifierPath","referencedDeclaration":189,"src":"1166:12:2"},"id":303,"nodeType":"InheritanceSpecifier","src":"1166:12:2"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":295,"nodeType":"StructuredDocumentation","src":"348:757:2","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications."},"fullyImplemented":true,"id":799,"linearizedBaseContracts":[799,189,903,877,933],"name":"ERC20","nameLocation":"1124:5:2","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":307,"mutability":"mutable","name":"_balances","nameLocation":"1229:9:2","nodeType":"VariableDeclaration","scope":799,"src":"1185:53:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":306,"keyName":"account","keyNameLocation":"1201:7:2","keyType":{"id":304,"name":"address","nodeType":"ElementaryTypeName","src":"1193:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1185:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":305,"name":"uint256","nodeType":"ElementaryTypeName","src":"1212:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":313,"mutability":"mutable","name":"_allowances","nameLocation":"1317:11:2","nodeType":"VariableDeclaration","scope":799,"src":"1245:83:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":312,"keyName":"account","keyNameLocation":"1261:7:2","keyType":{"id":308,"name":"address","nodeType":"ElementaryTypeName","src":"1253:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1245:63:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":311,"keyName":"spender","keyNameLocation":"1288:7:2","keyType":{"id":309,"name":"address","nodeType":"ElementaryTypeName","src":"1280:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1272:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":310,"name":"uint256","nodeType":"ElementaryTypeName","src":"1299:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":315,"mutability":"mutable","name":"_totalSupply","nameLocation":"1351:12:2","nodeType":"VariableDeclaration","scope":799,"src":"1335:28:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":314,"name":"uint256","nodeType":"ElementaryTypeName","src":"1335:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":317,"mutability":"mutable","name":"_name","nameLocation":"1385:5:2","nodeType":"VariableDeclaration","scope":799,"src":"1370:20:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":316,"name":"string","nodeType":"ElementaryTypeName","src":"1370:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":319,"mutability":"mutable","name":"_symbol","nameLocation":"1411:7:2","nodeType":"VariableDeclaration","scope":799,"src":"1396:22:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":318,"name":"string","nodeType":"ElementaryTypeName","src":"1396:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":335,"nodeType":"Block","src":"1638:57:2","statements":[{"expression":{"id":329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":327,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"1648:5:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":328,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":322,"src":"1656:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1648:13:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":330,"nodeType":"ExpressionStatement","src":"1648:13:2"},{"expression":{"id":333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":331,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"1671:7:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":332,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"1681:7:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1671:17:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":334,"nodeType":"ExpressionStatement","src":"1671:17:2"}]},"documentation":{"id":320,"nodeType":"StructuredDocumentation","src":"1425:152:2","text":" @dev Sets the values for {name} and {symbol}.\n Both values are immutable: they can only be set once during construction."},"id":336,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"mutability":"mutable","name":"name_","nameLocation":"1608:5:2","nodeType":"VariableDeclaration","scope":336,"src":"1594:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":321,"name":"string","nodeType":"ElementaryTypeName","src":"1594:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":324,"mutability":"mutable","name":"symbol_","nameLocation":"1629:7:2","nodeType":"VariableDeclaration","scope":336,"src":"1615:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":323,"name":"string","nodeType":"ElementaryTypeName","src":"1615:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1593:44:2"},"returnParameters":{"id":326,"nodeType":"ParameterList","parameters":[],"src":"1638:0:2"},"scope":799,"src":"1582:113:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[890],"body":{"id":344,"nodeType":"Block","src":"1820:29:2","statements":[{"expression":{"id":342,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"1837:5:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":341,"id":343,"nodeType":"Return","src":"1830:12:2"}]},"documentation":{"id":337,"nodeType":"StructuredDocumentation","src":"1701:54:2","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":345,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1769:4:2","nodeType":"FunctionDefinition","parameters":{"id":338,"nodeType":"ParameterList","parameters":[],"src":"1773:2:2"},"returnParameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":345,"src":"1805:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":339,"name":"string","nodeType":"ElementaryTypeName","src":"1805:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1804:15:2"},"scope":799,"src":"1760:89:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[896],"body":{"id":353,"nodeType":"Block","src":"2024:31:2","statements":[{"expression":{"id":351,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"2041:7:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":350,"id":352,"nodeType":"Return","src":"2034:14:2"}]},"documentation":{"id":346,"nodeType":"StructuredDocumentation","src":"1855:102:2","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":354,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1971:6:2","nodeType":"FunctionDefinition","parameters":{"id":347,"nodeType":"ParameterList","parameters":[],"src":"1977:2:2"},"returnParameters":{"id":350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":354,"src":"2009:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":348,"name":"string","nodeType":"ElementaryTypeName","src":"2009:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2008:15:2"},"scope":799,"src":"1962:93:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[902],"body":{"id":362,"nodeType":"Block","src":"2744:26:2","statements":[{"expression":{"hexValue":"3138","id":360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2761:2:2","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":359,"id":361,"nodeType":"Return","src":"2754:9:2"}]},"documentation":{"id":355,"nodeType":"StructuredDocumentation","src":"2061:622:2","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":363,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"2697:8:2","nodeType":"FunctionDefinition","parameters":{"id":356,"nodeType":"ParameterList","parameters":[],"src":"2705:2:2"},"returnParameters":{"id":359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":363,"src":"2737:5:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":357,"name":"uint8","nodeType":"ElementaryTypeName","src":"2737:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2736:7:2"},"scope":799,"src":"2688:82:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[826],"body":{"id":371,"nodeType":"Block","src":"2864:36:2","statements":[{"expression":{"id":369,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"2881:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":368,"id":370,"nodeType":"Return","src":"2874:19:2"}]},"documentation":{"id":364,"nodeType":"StructuredDocumentation","src":"2776:22:2","text":"@inheritdoc IERC20"},"functionSelector":"18160ddd","id":372,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"2812:11:2","nodeType":"FunctionDefinition","parameters":{"id":365,"nodeType":"ParameterList","parameters":[],"src":"2823:2:2"},"returnParameters":{"id":368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":372,"src":"2855:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":366,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2854:9:2"},"scope":799,"src":"2803:97:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[834],"body":{"id":384,"nodeType":"Block","src":"3007:42:2","statements":[{"expression":{"baseExpression":{"id":380,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":307,"src":"3024:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":382,"indexExpression":{"id":381,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"3034:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3024:18:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":379,"id":383,"nodeType":"Return","src":"3017:25:2"}]},"documentation":{"id":373,"nodeType":"StructuredDocumentation","src":"2906:22:2","text":"@inheritdoc IERC20"},"functionSelector":"70a08231","id":385,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2942:9:2","nodeType":"FunctionDefinition","parameters":{"id":376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":375,"mutability":"mutable","name":"account","nameLocation":"2960:7:2","nodeType":"VariableDeclaration","scope":385,"src":"2952:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":374,"name":"address","nodeType":"ElementaryTypeName","src":"2952:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2951:17:2"},"returnParameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":385,"src":"2998:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2998:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2997:9:2"},"scope":799,"src":"2933:116:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[844],"body":{"id":408,"nodeType":"Block","src":"3319:103:2","statements":[{"assignments":[396],"declarations":[{"constant":false,"id":396,"mutability":"mutable","name":"owner","nameLocation":"3337:5:2","nodeType":"VariableDeclaration","scope":408,"src":"3329:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":395,"name":"address","nodeType":"ElementaryTypeName","src":"3329:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":399,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":397,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":915,"src":"3345:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3345:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3329:28:2"},{"expression":{"arguments":[{"id":401,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"3377:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":402,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"3384:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":403,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"3388:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":400,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"3367:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3367:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":405,"nodeType":"ExpressionStatement","src":"3367:27:2"},{"expression":{"hexValue":"74727565","id":406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3411:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":394,"id":407,"nodeType":"Return","src":"3404:11:2"}]},"documentation":{"id":386,"nodeType":"StructuredDocumentation","src":"3055:184:2","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`."},"functionSelector":"a9059cbb","id":409,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3253:8:2","nodeType":"FunctionDefinition","parameters":{"id":391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":388,"mutability":"mutable","name":"to","nameLocation":"3270:2:2","nodeType":"VariableDeclaration","scope":409,"src":"3262:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":387,"name":"address","nodeType":"ElementaryTypeName","src":"3262:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":390,"mutability":"mutable","name":"value","nameLocation":"3282:5:2","nodeType":"VariableDeclaration","scope":409,"src":"3274:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":389,"name":"uint256","nodeType":"ElementaryTypeName","src":"3274:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3261:27:2"},"returnParameters":{"id":394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":409,"src":"3313:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":392,"name":"bool","nodeType":"ElementaryTypeName","src":"3313:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3312:6:2"},"scope":799,"src":"3244:178:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[854],"body":{"id":425,"nodeType":"Block","src":"3544:51:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":419,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"3561:11:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":421,"indexExpression":{"id":420,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"3573:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3561:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":423,"indexExpression":{"id":422,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":414,"src":"3580:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3561:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":418,"id":424,"nodeType":"Return","src":"3554:34:2"}]},"documentation":{"id":410,"nodeType":"StructuredDocumentation","src":"3428:22:2","text":"@inheritdoc IERC20"},"functionSelector":"dd62ed3e","id":426,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3464:9:2","nodeType":"FunctionDefinition","parameters":{"id":415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":412,"mutability":"mutable","name":"owner","nameLocation":"3482:5:2","nodeType":"VariableDeclaration","scope":426,"src":"3474:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":411,"name":"address","nodeType":"ElementaryTypeName","src":"3474:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":414,"mutability":"mutable","name":"spender","nameLocation":"3497:7:2","nodeType":"VariableDeclaration","scope":426,"src":"3489:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"3489:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3473:32:2"},"returnParameters":{"id":418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":426,"src":"3535:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":416,"name":"uint256","nodeType":"ElementaryTypeName","src":"3535:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3534:9:2"},"scope":799,"src":"3455:140:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[864],"body":{"id":449,"nodeType":"Block","src":"3981:107:2","statements":[{"assignments":[437],"declarations":[{"constant":false,"id":437,"mutability":"mutable","name":"owner","nameLocation":"3999:5:2","nodeType":"VariableDeclaration","scope":449,"src":"3991:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":436,"name":"address","nodeType":"ElementaryTypeName","src":"3991:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":440,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":438,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":915,"src":"4007:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4007:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3991:28:2"},{"expression":{"arguments":[{"id":442,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"4038:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":443,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"4045:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"4054:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":441,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[690,750],"referencedDeclaration":690,"src":"4029:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4029:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":446,"nodeType":"ExpressionStatement","src":"4029:31:2"},{"expression":{"hexValue":"74727565","id":447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4077:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":435,"id":448,"nodeType":"Return","src":"4070:11:2"}]},"documentation":{"id":427,"nodeType":"StructuredDocumentation","src":"3601:296:2","text":" @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":450,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3911:7:2","nodeType":"FunctionDefinition","parameters":{"id":432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":429,"mutability":"mutable","name":"spender","nameLocation":"3927:7:2","nodeType":"VariableDeclaration","scope":450,"src":"3919:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":428,"name":"address","nodeType":"ElementaryTypeName","src":"3919:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":431,"mutability":"mutable","name":"value","nameLocation":"3944:5:2","nodeType":"VariableDeclaration","scope":450,"src":"3936:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":430,"name":"uint256","nodeType":"ElementaryTypeName","src":"3936:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3918:32:2"},"returnParameters":{"id":435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":450,"src":"3975:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":433,"name":"bool","nodeType":"ElementaryTypeName","src":"3975:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3974:6:2"},"scope":799,"src":"3902:186:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[876],"body":{"id":481,"nodeType":"Block","src":"4773:151:2","statements":[{"assignments":[463],"declarations":[{"constant":false,"id":463,"mutability":"mutable","name":"spender","nameLocation":"4791:7:2","nodeType":"VariableDeclaration","scope":481,"src":"4783:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":462,"name":"address","nodeType":"ElementaryTypeName","src":"4783:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":466,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":464,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":915,"src":"4801:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4783:30:2"},{"expression":{"arguments":[{"id":468,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"4839:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":469,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":463,"src":"4845:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"4854:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":467,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"4823:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4823:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":472,"nodeType":"ExpressionStatement","src":"4823:37:2"},{"expression":{"arguments":[{"id":474,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"4880:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":475,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"4886:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":476,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"4890:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":473,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"4870:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4870:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":478,"nodeType":"ExpressionStatement","src":"4870:26:2"},{"expression":{"hexValue":"74727565","id":479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4913:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":461,"id":480,"nodeType":"Return","src":"4906:11:2"}]},"documentation":{"id":451,"nodeType":"StructuredDocumentation","src":"4094:581:2","text":" @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`."},"functionSelector":"23b872dd","id":482,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4689:12:2","nodeType":"FunctionDefinition","parameters":{"id":458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":453,"mutability":"mutable","name":"from","nameLocation":"4710:4:2","nodeType":"VariableDeclaration","scope":482,"src":"4702:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":452,"name":"address","nodeType":"ElementaryTypeName","src":"4702:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":455,"mutability":"mutable","name":"to","nameLocation":"4724:2:2","nodeType":"VariableDeclaration","scope":482,"src":"4716:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":454,"name":"address","nodeType":"ElementaryTypeName","src":"4716:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":457,"mutability":"mutable","name":"value","nameLocation":"4736:5:2","nodeType":"VariableDeclaration","scope":482,"src":"4728:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":456,"name":"uint256","nodeType":"ElementaryTypeName","src":"4728:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4701:41:2"},"returnParameters":{"id":461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":482,"src":"4767:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":459,"name":"bool","nodeType":"ElementaryTypeName","src":"4767:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4766:6:2"},"scope":799,"src":"4680:244:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":528,"nodeType":"Block","src":"5366:231:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":492,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"5380:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5396: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":494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5388:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":493,"name":"address","nodeType":"ElementaryTypeName","src":"5388:7:2","typeDescriptions":{}}},"id":496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5388:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5380:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":506,"nodeType":"IfStatement","src":"5376:86:2","trueBody":{"id":505,"nodeType":"Block","src":"5400:62:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5448: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":500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5440:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":499,"name":"address","nodeType":"ElementaryTypeName","src":"5440:7:2","typeDescriptions":{}}},"id":502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5440:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":498,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":164,"src":"5421:18:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5421:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":504,"nodeType":"RevertStatement","src":"5414:37:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":507,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"5475:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5489: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":509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5481:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":508,"name":"address","nodeType":"ElementaryTypeName","src":"5481:7:2","typeDescriptions":{}}},"id":511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5481:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5475:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":521,"nodeType":"IfStatement","src":"5471:86:2","trueBody":{"id":520,"nodeType":"Block","src":"5493:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5543: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":515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5535:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":514,"name":"address","nodeType":"ElementaryTypeName","src":"5535:7:2","typeDescriptions":{}}},"id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5535:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":513,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"5514:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5514:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":519,"nodeType":"RevertStatement","src":"5507:39:2"}]}},{"expression":{"arguments":[{"id":523,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"5574:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":524,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"5580:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":525,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"5584:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":522,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"5566:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5566:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":527,"nodeType":"ExpressionStatement","src":"5566:24:2"}]},"documentation":{"id":483,"nodeType":"StructuredDocumentation","src":"4930:362:2","text":" @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":529,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"5306:9:2","nodeType":"FunctionDefinition","parameters":{"id":490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":485,"mutability":"mutable","name":"from","nameLocation":"5324:4:2","nodeType":"VariableDeclaration","scope":529,"src":"5316:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":484,"name":"address","nodeType":"ElementaryTypeName","src":"5316:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":487,"mutability":"mutable","name":"to","nameLocation":"5338:2:2","nodeType":"VariableDeclaration","scope":529,"src":"5330:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":486,"name":"address","nodeType":"ElementaryTypeName","src":"5330:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":489,"mutability":"mutable","name":"value","nameLocation":"5350:5:2","nodeType":"VariableDeclaration","scope":529,"src":"5342:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":488,"name":"uint256","nodeType":"ElementaryTypeName","src":"5342:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5315:41:2"},"returnParameters":{"id":491,"nodeType":"ParameterList","parameters":[],"src":"5366:0:2"},"scope":799,"src":"5297:300:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":605,"nodeType":"Block","src":"5987:1032:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":539,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"6001:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6017: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":541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6009:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":540,"name":"address","nodeType":"ElementaryTypeName","src":"6009:7:2","typeDescriptions":{}}},"id":543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6001:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":576,"nodeType":"Block","src":"6175:362:2","statements":[{"assignments":[551],"declarations":[{"constant":false,"id":551,"mutability":"mutable","name":"fromBalance","nameLocation":"6197:11:2","nodeType":"VariableDeclaration","scope":576,"src":"6189:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":550,"name":"uint256","nodeType":"ElementaryTypeName","src":"6189:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":555,"initialValue":{"baseExpression":{"id":552,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":307,"src":"6211:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":554,"indexExpression":{"id":553,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"6221:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6211:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6189:37:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":556,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":551,"src":"6244:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":557,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"6258:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6244:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":566,"nodeType":"IfStatement","src":"6240:115:2","trueBody":{"id":565,"nodeType":"Block","src":"6265:90:2","statements":[{"errorCall":{"arguments":[{"id":560,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"6315:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":561,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":551,"src":"6321:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":562,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"6334:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":559,"name":"ERC20InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":159,"src":"6290:24:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6290:50:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":564,"nodeType":"RevertStatement","src":"6283:57:2"}]}},{"id":575,"nodeType":"UncheckedBlock","src":"6368:159:2","statements":[{"expression":{"id":573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":567,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":307,"src":"6475:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":569,"indexExpression":{"id":568,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"6485:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6475:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":570,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":551,"src":"6493:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"6507:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6493:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6475:37:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":574,"nodeType":"ExpressionStatement","src":"6475:37:2"}]}]},"id":577,"nodeType":"IfStatement","src":"5997:540:2","trueBody":{"id":549,"nodeType":"Block","src":"6021:148:2","statements":[{"expression":{"id":547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":545,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"6137:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":546,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"6153:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":548,"nodeType":"ExpressionStatement","src":"6137:21:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":578,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":534,"src":"6551:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6565: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":580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6557:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":579,"name":"address","nodeType":"ElementaryTypeName","src":"6557:7:2","typeDescriptions":{}}},"id":582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6557:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6551:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":597,"nodeType":"Block","src":"6766:206:2","statements":[{"id":596,"nodeType":"UncheckedBlock","src":"6780:182:2","statements":[{"expression":{"id":594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":590,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":307,"src":"6925:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":592,"indexExpression":{"id":591,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":534,"src":"6935:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6925:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":593,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"6942:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6925:22:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":595,"nodeType":"ExpressionStatement","src":"6925:22:2"}]}]},"id":598,"nodeType":"IfStatement","src":"6547:425:2","trueBody":{"id":589,"nodeType":"Block","src":"6569:191:2","statements":[{"id":588,"nodeType":"UncheckedBlock","src":"6583:167:2","statements":[{"expression":{"id":586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":584,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"6714:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":585,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"6730:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6714:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":587,"nodeType":"ExpressionStatement","src":"6714:21:2"}]}]}},{"eventCall":{"arguments":[{"id":600,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"6996:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":601,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":534,"src":"7002:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":602,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"7006:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":599,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":811,"src":"6987:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6987:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":604,"nodeType":"EmitStatement","src":"6982:30:2"}]},"documentation":{"id":530,"nodeType":"StructuredDocumentation","src":"5603:304:2","text":" @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event."},"id":606,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"5921:7:2","nodeType":"FunctionDefinition","parameters":{"id":537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":532,"mutability":"mutable","name":"from","nameLocation":"5937:4:2","nodeType":"VariableDeclaration","scope":606,"src":"5929:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":531,"name":"address","nodeType":"ElementaryTypeName","src":"5929:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":534,"mutability":"mutable","name":"to","nameLocation":"5951:2:2","nodeType":"VariableDeclaration","scope":606,"src":"5943:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":533,"name":"address","nodeType":"ElementaryTypeName","src":"5943:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":536,"mutability":"mutable","name":"value","nameLocation":"5963:5:2","nodeType":"VariableDeclaration","scope":606,"src":"5955:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":535,"name":"uint256","nodeType":"ElementaryTypeName","src":"5955:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5928:41:2"},"returnParameters":{"id":538,"nodeType":"ParameterList","parameters":[],"src":"5987:0:2"},"scope":799,"src":"5912:1107:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":638,"nodeType":"Block","src":"7418:152:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":614,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"7432:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7451: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":616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7443:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":615,"name":"address","nodeType":"ElementaryTypeName","src":"7443:7:2","typeDescriptions":{}}},"id":618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7443:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7432:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":628,"nodeType":"IfStatement","src":"7428:91:2","trueBody":{"id":627,"nodeType":"Block","src":"7455:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7505: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":622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7497:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":621,"name":"address","nodeType":"ElementaryTypeName","src":"7497:7:2","typeDescriptions":{}}},"id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7497:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":620,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"7476:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7476:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":626,"nodeType":"RevertStatement","src":"7469:39:2"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7544: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":631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":630,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:2","typeDescriptions":{}}},"id":633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":634,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"7548:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":635,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"7557:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":629,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"7528:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7528:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":637,"nodeType":"ExpressionStatement","src":"7528:35:2"}]},"documentation":{"id":607,"nodeType":"StructuredDocumentation","src":"7025:332:2","text":" @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":639,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"7371:5:2","nodeType":"FunctionDefinition","parameters":{"id":612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":609,"mutability":"mutable","name":"account","nameLocation":"7385:7:2","nodeType":"VariableDeclaration","scope":639,"src":"7377:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":608,"name":"address","nodeType":"ElementaryTypeName","src":"7377:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":611,"mutability":"mutable","name":"value","nameLocation":"7402:5:2","nodeType":"VariableDeclaration","scope":639,"src":"7394:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":610,"name":"uint256","nodeType":"ElementaryTypeName","src":"7394:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7376:32:2"},"returnParameters":{"id":613,"nodeType":"ParameterList","parameters":[],"src":"7418:0:2"},"scope":799,"src":"7362:208:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":671,"nodeType":"Block","src":"7944:150:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":647,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"7958:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7977: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":649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7969:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":648,"name":"address","nodeType":"ElementaryTypeName","src":"7969:7:2","typeDescriptions":{}}},"id":651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7969:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7958:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":661,"nodeType":"IfStatement","src":"7954:89:2","trueBody":{"id":660,"nodeType":"Block","src":"7981:62:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8029: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":655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8021:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":654,"name":"address","nodeType":"ElementaryTypeName","src":"8021:7:2","typeDescriptions":{}}},"id":657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8021:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":653,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":164,"src":"8002:18:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8002:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":659,"nodeType":"RevertStatement","src":"7995:37:2"}]}},{"expression":{"arguments":[{"id":663,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"8060:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8077: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":665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8069:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":664,"name":"address","nodeType":"ElementaryTypeName","src":"8069:7:2","typeDescriptions":{}}},"id":667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":644,"src":"8081:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":662,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"8052:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8052:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":670,"nodeType":"ExpressionStatement","src":"8052:35:2"}]},"documentation":{"id":640,"nodeType":"StructuredDocumentation","src":"7576:307:2","text":" @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"},"id":672,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"7897:5:2","nodeType":"FunctionDefinition","parameters":{"id":645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":642,"mutability":"mutable","name":"account","nameLocation":"7911:7:2","nodeType":"VariableDeclaration","scope":672,"src":"7903:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":641,"name":"address","nodeType":"ElementaryTypeName","src":"7903:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":644,"mutability":"mutable","name":"value","nameLocation":"7928:5:2","nodeType":"VariableDeclaration","scope":672,"src":"7920:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":643,"name":"uint256","nodeType":"ElementaryTypeName","src":"7920:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7902:32:2"},"returnParameters":{"id":646,"nodeType":"ParameterList","parameters":[],"src":"7944:0:2"},"scope":799,"src":"7888:206:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":689,"nodeType":"Block","src":"8704:54:2","statements":[{"expression":{"arguments":[{"id":683,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":675,"src":"8723:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":684,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":677,"src":"8730:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":685,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"8739:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8746:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":682,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[690,750],"referencedDeclaration":750,"src":"8714:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8714:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":688,"nodeType":"ExpressionStatement","src":"8714:37:2"}]},"documentation":{"id":673,"nodeType":"StructuredDocumentation","src":"8100:525:2","text":" @dev Sets `value` as the allowance of `spender` over the `owner`'s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":690,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"8639:8:2","nodeType":"FunctionDefinition","parameters":{"id":680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":675,"mutability":"mutable","name":"owner","nameLocation":"8656:5:2","nodeType":"VariableDeclaration","scope":690,"src":"8648:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":674,"name":"address","nodeType":"ElementaryTypeName","src":"8648:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":677,"mutability":"mutable","name":"spender","nameLocation":"8671:7:2","nodeType":"VariableDeclaration","scope":690,"src":"8663:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":676,"name":"address","nodeType":"ElementaryTypeName","src":"8663:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":679,"mutability":"mutable","name":"value","nameLocation":"8688:5:2","nodeType":"VariableDeclaration","scope":690,"src":"8680:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":678,"name":"uint256","nodeType":"ElementaryTypeName","src":"8680:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8647:47:2"},"returnParameters":{"id":681,"nodeType":"ParameterList","parameters":[],"src":"8704:0:2"},"scope":799,"src":"8630:128:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":749,"nodeType":"Block","src":"9703:334:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":702,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"9717:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9734: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":704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9726:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":703,"name":"address","nodeType":"ElementaryTypeName","src":"9726:7:2","typeDescriptions":{}}},"id":706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9726:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9717:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":716,"nodeType":"IfStatement","src":"9713:89:2","trueBody":{"id":715,"nodeType":"Block","src":"9738:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9788: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":710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9780:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":709,"name":"address","nodeType":"ElementaryTypeName","src":"9780:7:2","typeDescriptions":{}}},"id":712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9780:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":708,"name":"ERC20InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":183,"src":"9759:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9759:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":714,"nodeType":"RevertStatement","src":"9752:39:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":717,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"9815:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9834: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":719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9826:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":718,"name":"address","nodeType":"ElementaryTypeName","src":"9826:7:2","typeDescriptions":{}}},"id":721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9826:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9815:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":731,"nodeType":"IfStatement","src":"9811:90:2","trueBody":{"id":730,"nodeType":"Block","src":"9838:63:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9887: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":725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9879:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":724,"name":"address","nodeType":"ElementaryTypeName","src":"9879:7:2","typeDescriptions":{}}},"id":727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9879:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":723,"name":"ERC20InvalidSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"9859:19:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9859:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":729,"nodeType":"RevertStatement","src":"9852:38:2"}]}},{"expression":{"id":738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":732,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"9910:11:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":735,"indexExpression":{"id":733,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"9922:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9910:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":736,"indexExpression":{"id":734,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"9929:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9910:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":737,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"9940:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9910:35:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":739,"nodeType":"ExpressionStatement","src":"9910:35:2"},{"condition":{"id":740,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"9959:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":748,"nodeType":"IfStatement","src":"9955:76:2","trueBody":{"id":747,"nodeType":"Block","src":"9970:61:2","statements":[{"eventCall":{"arguments":[{"id":742,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"9998:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":743,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"10005:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":744,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"10014:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":741,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"9989:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9989:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":746,"nodeType":"EmitStatement","src":"9984:36:2"}]}}]},"documentation":{"id":691,"nodeType":"StructuredDocumentation","src":"8764:836:2","text":" @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n     super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}."},"id":750,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"9614:8:2","nodeType":"FunctionDefinition","parameters":{"id":700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":693,"mutability":"mutable","name":"owner","nameLocation":"9631:5:2","nodeType":"VariableDeclaration","scope":750,"src":"9623:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":692,"name":"address","nodeType":"ElementaryTypeName","src":"9623:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":695,"mutability":"mutable","name":"spender","nameLocation":"9646:7:2","nodeType":"VariableDeclaration","scope":750,"src":"9638:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":694,"name":"address","nodeType":"ElementaryTypeName","src":"9638:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":697,"mutability":"mutable","name":"value","nameLocation":"9663:5:2","nodeType":"VariableDeclaration","scope":750,"src":"9655:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":696,"name":"uint256","nodeType":"ElementaryTypeName","src":"9655:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":699,"mutability":"mutable","name":"emitEvent","nameLocation":"9675:9:2","nodeType":"VariableDeclaration","scope":750,"src":"9670:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":698,"name":"bool","nodeType":"ElementaryTypeName","src":"9670:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9622:63:2"},"returnParameters":{"id":701,"nodeType":"ParameterList","parameters":[],"src":"9703:0:2"},"scope":799,"src":"9605:432:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":797,"nodeType":"Block","src":"10408:387:2","statements":[{"assignments":[761],"declarations":[{"constant":false,"id":761,"mutability":"mutable","name":"currentAllowance","nameLocation":"10426:16:2","nodeType":"VariableDeclaration","scope":797,"src":"10418:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":760,"name":"uint256","nodeType":"ElementaryTypeName","src":"10418:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":766,"initialValue":{"arguments":[{"id":763,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":753,"src":"10455:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":764,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":755,"src":"10462:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":762,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":426,"src":"10445:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10445:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10418:52:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":767,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":761,"src":"10484:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10508:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":769,"name":"uint256","nodeType":"ElementaryTypeName","src":"10508:7:2","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":768,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10503:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10503:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10517:3:2","memberName":"max","nodeType":"MemberAccess","src":"10503:17:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10484:36:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":796,"nodeType":"IfStatement","src":"10480:309:2","trueBody":{"id":795,"nodeType":"Block","src":"10522:267:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":774,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":761,"src":"10540:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":775,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"10559:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10540:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":784,"nodeType":"IfStatement","src":"10536:130:2","trueBody":{"id":783,"nodeType":"Block","src":"10566:100:2","statements":[{"errorCall":{"arguments":[{"id":778,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":755,"src":"10618:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":779,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":761,"src":"10627:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":780,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"10645:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":777,"name":"ERC20InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"10591:26:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:60:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":782,"nodeType":"RevertStatement","src":"10584:67:2"}]}},{"id":794,"nodeType":"UncheckedBlock","src":"10679:100:2","statements":[{"expression":{"arguments":[{"id":786,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":753,"src":"10716:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":787,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":755,"src":"10723:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":788,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":761,"src":"10732:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":789,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"10751:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10732:24:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10758:5:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":785,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[690,750],"referencedDeclaration":750,"src":"10707:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10707:57:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":793,"nodeType":"ExpressionStatement","src":"10707:57:2"}]}]}}]},"documentation":{"id":751,"nodeType":"StructuredDocumentation","src":"10043:271:2","text":" @dev Updates `owner`'s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event."},"id":798,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10328:15:2","nodeType":"FunctionDefinition","parameters":{"id":758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":753,"mutability":"mutable","name":"owner","nameLocation":"10352:5:2","nodeType":"VariableDeclaration","scope":798,"src":"10344:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":752,"name":"address","nodeType":"ElementaryTypeName","src":"10344:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":755,"mutability":"mutable","name":"spender","nameLocation":"10367:7:2","nodeType":"VariableDeclaration","scope":798,"src":"10359:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":754,"name":"address","nodeType":"ElementaryTypeName","src":"10359:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":757,"mutability":"mutable","name":"value","nameLocation":"10384:5:2","nodeType":"VariableDeclaration","scope":798,"src":"10376:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":756,"name":"uint256","nodeType":"ElementaryTypeName","src":"10376:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10343:47:2"},"returnParameters":{"id":759,"nodeType":"ParameterList","parameters":[],"src":"10408:0:2"},"scope":799,"src":"10319:476:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":800,"src":"1106:9691:2","usedErrors":[159,164,169,178,183,188],"usedEvents":[811,820]}],"src":"105:10693:2"},"id":2},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[877]},"id":878,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":801,"literals":["solidity",">=","0.4",".16"],"nodeType":"PragmaDirective","src":"106:25:3"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":802,"nodeType":"StructuredDocumentation","src":"133:71:3","text":" @dev Interface of the ERC-20 standard as defined in the ERC."},"fullyImplemented":false,"id":877,"linearizedBaseContracts":[877],"name":"IERC20","nameLocation":"215:6:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":803,"nodeType":"StructuredDocumentation","src":"228:158:3","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":811,"name":"Transfer","nameLocation":"397:8:3","nodeType":"EventDefinition","parameters":{"id":810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":805,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"422:4:3","nodeType":"VariableDeclaration","scope":811,"src":"406:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":804,"name":"address","nodeType":"ElementaryTypeName","src":"406:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":807,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"444:2:3","nodeType":"VariableDeclaration","scope":811,"src":"428:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":806,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":809,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"456:5:3","nodeType":"VariableDeclaration","scope":811,"src":"448:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":808,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"405:57:3"},"src":"391:72:3"},{"anonymous":false,"documentation":{"id":812,"nodeType":"StructuredDocumentation","src":"469:148:3","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":820,"name":"Approval","nameLocation":"628:8:3","nodeType":"EventDefinition","parameters":{"id":819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":814,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"653:5:3","nodeType":"VariableDeclaration","scope":820,"src":"637:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":813,"name":"address","nodeType":"ElementaryTypeName","src":"637:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":816,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"676:7:3","nodeType":"VariableDeclaration","scope":820,"src":"660:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":815,"name":"address","nodeType":"ElementaryTypeName","src":"660:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":818,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"693:5:3","nodeType":"VariableDeclaration","scope":820,"src":"685:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":817,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"636:63:3"},"src":"622:78:3"},{"documentation":{"id":821,"nodeType":"StructuredDocumentation","src":"706:65:3","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":826,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"785:11:3","nodeType":"FunctionDefinition","parameters":{"id":822,"nodeType":"ParameterList","parameters":[],"src":"796:2:3"},"returnParameters":{"id":825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":826,"src":"822:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":823,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:9:3"},"scope":877,"src":"776:55:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":827,"nodeType":"StructuredDocumentation","src":"837:71:3","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":834,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"922:9:3","nodeType":"FunctionDefinition","parameters":{"id":830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":829,"mutability":"mutable","name":"account","nameLocation":"940:7:3","nodeType":"VariableDeclaration","scope":834,"src":"932:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":828,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"931:17:3"},"returnParameters":{"id":833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":834,"src":"972:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":831,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"971:9:3"},"scope":877,"src":"913:68:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":835,"nodeType":"StructuredDocumentation","src":"987:213:3","text":" @dev Moves a `value` amount of 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":844,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1214:8:3","nodeType":"FunctionDefinition","parameters":{"id":840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":837,"mutability":"mutable","name":"to","nameLocation":"1231:2:3","nodeType":"VariableDeclaration","scope":844,"src":"1223:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":836,"name":"address","nodeType":"ElementaryTypeName","src":"1223:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":839,"mutability":"mutable","name":"value","nameLocation":"1243:5:3","nodeType":"VariableDeclaration","scope":844,"src":"1235:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":838,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:27:3"},"returnParameters":{"id":843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":844,"src":"1268:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":841,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1267:6:3"},"scope":877,"src":"1205:69:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":845,"nodeType":"StructuredDocumentation","src":"1280:264:3","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":854,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1558:9:3","nodeType":"FunctionDefinition","parameters":{"id":850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":847,"mutability":"mutable","name":"owner","nameLocation":"1576:5:3","nodeType":"VariableDeclaration","scope":854,"src":"1568:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":846,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":849,"mutability":"mutable","name":"spender","nameLocation":"1591:7:3","nodeType":"VariableDeclaration","scope":854,"src":"1583:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":848,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1567:32:3"},"returnParameters":{"id":853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":854,"src":"1623:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":851,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1622:9:3"},"scope":877,"src":"1549:83:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":855,"nodeType":"StructuredDocumentation","src":"1638:667:3","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n 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":864,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2319:7:3","nodeType":"FunctionDefinition","parameters":{"id":860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":857,"mutability":"mutable","name":"spender","nameLocation":"2335:7:3","nodeType":"VariableDeclaration","scope":864,"src":"2327:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":856,"name":"address","nodeType":"ElementaryTypeName","src":"2327:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":859,"mutability":"mutable","name":"value","nameLocation":"2352:5:3","nodeType":"VariableDeclaration","scope":864,"src":"2344:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2344:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2326:32:3"},"returnParameters":{"id":863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":864,"src":"2377:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":861,"name":"bool","nodeType":"ElementaryTypeName","src":"2377:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2376:6:3"},"scope":877,"src":"2310:73:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":865,"nodeType":"StructuredDocumentation","src":"2389:297:3","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` 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":876,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2700:12:3","nodeType":"FunctionDefinition","parameters":{"id":872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":867,"mutability":"mutable","name":"from","nameLocation":"2721:4:3","nodeType":"VariableDeclaration","scope":876,"src":"2713:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":866,"name":"address","nodeType":"ElementaryTypeName","src":"2713:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":869,"mutability":"mutable","name":"to","nameLocation":"2735:2:3","nodeType":"VariableDeclaration","scope":876,"src":"2727:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":868,"name":"address","nodeType":"ElementaryTypeName","src":"2727:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":871,"mutability":"mutable","name":"value","nameLocation":"2747:5:3","nodeType":"VariableDeclaration","scope":876,"src":"2739:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":870,"name":"uint256","nodeType":"ElementaryTypeName","src":"2739:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2712:41:3"},"returnParameters":{"id":875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":876,"src":"2772:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":873,"name":"bool","nodeType":"ElementaryTypeName","src":"2772:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2771:6:3"},"scope":877,"src":"2691:87:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":878,"src":"205:2575:3","usedErrors":[],"usedEvents":[811,820]}],"src":"106:2675:3"},"id":3},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[877],"IERC20Metadata":[903]},"id":904,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":879,"literals":["solidity",">=","0.6",".2"],"nodeType":"PragmaDirective","src":"125:24:4"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":881,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":904,"sourceUnit":878,"src":"151:37:4","symbolAliases":[{"foreign":{"id":880,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"159:6:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":883,"name":"IERC20","nameLocations":["306:6:4"],"nodeType":"IdentifierPath","referencedDeclaration":877,"src":"306:6:4"},"id":884,"nodeType":"InheritanceSpecifier","src":"306:6:4"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":882,"nodeType":"StructuredDocumentation","src":"190:87:4","text":" @dev Interface for the optional metadata functions from the ERC-20 standard."},"fullyImplemented":false,"id":903,"linearizedBaseContracts":[903,877],"name":"IERC20Metadata","nameLocation":"288:14:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":885,"nodeType":"StructuredDocumentation","src":"319:54:4","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":890,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"387:4:4","nodeType":"FunctionDefinition","parameters":{"id":886,"nodeType":"ParameterList","parameters":[],"src":"391:2:4"},"returnParameters":{"id":889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":890,"src":"417:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":887,"name":"string","nodeType":"ElementaryTypeName","src":"417:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"416:15:4"},"scope":903,"src":"378:54:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":891,"nodeType":"StructuredDocumentation","src":"438:56:4","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":896,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"508:6:4","nodeType":"FunctionDefinition","parameters":{"id":892,"nodeType":"ParameterList","parameters":[],"src":"514:2:4"},"returnParameters":{"id":895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":894,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":896,"src":"540:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":893,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"539:15:4"},"scope":903,"src":"499:56:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":897,"nodeType":"StructuredDocumentation","src":"561:65:4","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":902,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"640:8:4","nodeType":"FunctionDefinition","parameters":{"id":898,"nodeType":"ParameterList","parameters":[],"src":"648:2:4"},"returnParameters":{"id":901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":902,"src":"674:5:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":899,"name":"uint8","nodeType":"ElementaryTypeName","src":"674:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"673:7:4"},"scope":903,"src":"631:50:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":904,"src":"278:405:4","usedErrors":[],"usedEvents":[811,820]}],"src":"125:559:4"},"id":4},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[933]},"id":934,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":905,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:5"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":906,"nodeType":"StructuredDocumentation","src":"127:496:5","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":933,"linearizedBaseContracts":[933],"name":"Context","nameLocation":"642:7:5","nodeType":"ContractDefinition","nodes":[{"body":{"id":914,"nodeType":"Block","src":"718:34:5","statements":[{"expression":{"expression":{"id":911,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:5","memberName":"sender","nodeType":"MemberAccess","src":"735:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":910,"id":913,"nodeType":"Return","src":"728:17:5"}]},"id":915,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:5","nodeType":"FunctionDefinition","parameters":{"id":907,"nodeType":"ParameterList","parameters":[],"src":"675:2:5"},"returnParameters":{"id":910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":915,"src":"709:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":908,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:5"},"scope":933,"src":"656:96:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":923,"nodeType":"Block","src":"825:32:5","statements":[{"expression":{"expression":{"id":920,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:5","memberName":"data","nodeType":"MemberAccess","src":"842:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":919,"id":922,"nodeType":"Return","src":"835:15:5"}]},"id":924,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:5","nodeType":"FunctionDefinition","parameters":{"id":916,"nodeType":"ParameterList","parameters":[],"src":"775:2:5"},"returnParameters":{"id":919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":924,"src":"809:14:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":917,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:5"},"scope":933,"src":"758:99:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":931,"nodeType":"Block","src":"935:25:5","statements":[{"expression":{"hexValue":"30","id":929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":928,"id":930,"nodeType":"Return","src":"945:8:5"}]},"id":932,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:5","nodeType":"FunctionDefinition","parameters":{"id":925,"nodeType":"ParameterList","parameters":[],"src":"892:2:5"},"returnParameters":{"id":928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":932,"src":"926:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":926,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:5"},"scope":933,"src":"863:97:5","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":934,"src":"624:338:5","usedErrors":[],"usedEvents":[]}],"src":"101:862:5"},"id":5},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[1002]},"id":1003,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":935,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:6"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":936,"nodeType":"StructuredDocumentation","src":"135:894:6","text":" @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,\n consider using {ReentrancyGuardTransient} instead.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"fullyImplemented":true,"id":1002,"linearizedBaseContracts":[1002],"name":"ReentrancyGuard","nameLocation":"1048:15:6","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":939,"mutability":"constant","name":"NOT_ENTERED","nameLocation":"1843:11:6","nodeType":"VariableDeclaration","scope":1002,"src":"1818:40:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":937,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1857:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":942,"mutability":"constant","name":"ENTERED","nameLocation":"1889:7:6","nodeType":"VariableDeclaration","scope":1002,"src":"1864:36:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":940,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1899:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":false,"id":944,"mutability":"mutable","name":"_status","nameLocation":"1923:7:6","nodeType":"VariableDeclaration","scope":1002,"src":"1907:23:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":943,"name":"uint256","nodeType":"ElementaryTypeName","src":"1907:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"documentation":{"id":945,"nodeType":"StructuredDocumentation","src":"1937:52:6","text":" @dev Unauthorized reentrant call."},"errorSelector":"3ee5aeb5","id":947,"name":"ReentrancyGuardReentrantCall","nameLocation":"2000:28:6","nodeType":"ErrorDefinition","parameters":{"id":946,"nodeType":"ParameterList","parameters":[],"src":"2028:2:6"},"src":"1994:37:6"},{"body":{"id":954,"nodeType":"Block","src":"2051:38:6","statements":[{"expression":{"id":952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":950,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"2061:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":951,"name":"NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":939,"src":"2071:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2061:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":953,"nodeType":"ExpressionStatement","src":"2061:21:6"}]},"id":955,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":948,"nodeType":"ParameterList","parameters":[],"src":"2048:2:6"},"returnParameters":{"id":949,"nodeType":"ParameterList","parameters":[],"src":"2051:0:6"},"scope":1002,"src":"2037:52:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":965,"nodeType":"Block","src":"2490:79:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":958,"name":"_nonReentrantBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":982,"src":"2500:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2500:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":960,"nodeType":"ExpressionStatement","src":"2500:21:6"},{"id":961,"nodeType":"PlaceholderStatement","src":"2531:1:6"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":962,"name":"_nonReentrantAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":990,"src":"2542:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2542:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":964,"nodeType":"ExpressionStatement","src":"2542:20:6"}]},"documentation":{"id":956,"nodeType":"StructuredDocumentation","src":"2095:366:6","text":" @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."},"id":966,"name":"nonReentrant","nameLocation":"2475:12:6","nodeType":"ModifierDefinition","parameters":{"id":957,"nodeType":"ParameterList","parameters":[],"src":"2487:2:6"},"src":"2466:103:6","virtual":false,"visibility":"internal"},{"body":{"id":981,"nodeType":"Block","src":"2614:268:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":969,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"2702:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":970,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":942,"src":"2713:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2702:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":976,"nodeType":"IfStatement","src":"2698:86:6","trueBody":{"id":975,"nodeType":"Block","src":"2722:62:6","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":972,"name":"ReentrancyGuardReentrantCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"2743:28:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2743:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":974,"nodeType":"RevertStatement","src":"2736:37:6"}]}},{"expression":{"id":979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":977,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"2858:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":978,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":942,"src":"2868:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2858:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":980,"nodeType":"ExpressionStatement","src":"2858:17:6"}]},"id":982,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantBefore","nameLocation":"2584:19:6","nodeType":"FunctionDefinition","parameters":{"id":967,"nodeType":"ParameterList","parameters":[],"src":"2603:2:6"},"returnParameters":{"id":968,"nodeType":"ParameterList","parameters":[],"src":"2614:0:6"},"scope":1002,"src":"2575:307:6","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":989,"nodeType":"Block","src":"2926:170:6","statements":[{"expression":{"id":987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":985,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"3068:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":986,"name":"NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":939,"src":"3078:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3068:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":988,"nodeType":"ExpressionStatement","src":"3068:21:6"}]},"id":990,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantAfter","nameLocation":"2897:18:6","nodeType":"FunctionDefinition","parameters":{"id":983,"nodeType":"ParameterList","parameters":[],"src":"2915:2:6"},"returnParameters":{"id":984,"nodeType":"ParameterList","parameters":[],"src":"2926:0:6"},"scope":1002,"src":"2888:208:6","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1000,"nodeType":"Block","src":"3339:42:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":996,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"3356:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":997,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":942,"src":"3367:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3356:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":995,"id":999,"nodeType":"Return","src":"3349:25:6"}]},"documentation":{"id":991,"nodeType":"StructuredDocumentation","src":"3102:168:6","text":" @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n `nonReentrant` function in the call stack."},"id":1001,"implemented":true,"kind":"function","modifiers":[],"name":"_reentrancyGuardEntered","nameLocation":"3284:23:6","nodeType":"FunctionDefinition","parameters":{"id":992,"nodeType":"ParameterList","parameters":[],"src":"3307:2:6"},"returnParameters":{"id":995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1001,"src":"3333:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":993,"name":"bool","nodeType":"ElementaryTypeName","src":"3333:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3332:6:6"},"scope":1002,"src":"3275:106:6","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":1003,"src":"1030:2353:6","usedErrors":[947],"usedEvents":[]}],"src":"109:3275:6"},"id":6},"contracts/KDNStaking.sol":{"ast":{"absolutePath":"contracts/KDNStaking.sol","exportedSymbols":{"Context":[933],"IERC20":[877],"KDNStaking":[1815],"Ownable":[147],"ReentrancyGuard":[1002]},"id":1816,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1004,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:7"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":1005,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1816,"sourceUnit":878,"src":"61:56:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":1006,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1816,"sourceUnit":148,"src":"119:52:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","id":1007,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1816,"sourceUnit":1003,"src":"173:59:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1008,"name":"Ownable","nameLocations":["259:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"259:7:7"},"id":1009,"nodeType":"InheritanceSpecifier","src":"259:7:7"},{"baseName":{"id":1010,"name":"ReentrancyGuard","nameLocations":["268:15:7"],"nodeType":"IdentifierPath","referencedDeclaration":1002,"src":"268:15:7"},"id":1011,"nodeType":"InheritanceSpecifier","src":"268:15:7"}],"canonicalName":"KDNStaking","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":1815,"linearizedBaseContracts":[1815,1002,147,933],"name":"KDNStaking","nameLocation":"245:10:7","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"f6392595","id":1014,"mutability":"mutable","name":"kdnToken","nameLocation":"305:8:7","nodeType":"VariableDeclaration","scope":1815,"src":"291:22:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"},"typeName":{"id":1013,"nodeType":"UserDefinedTypeName","pathNode":{"id":1012,"name":"IERC20","nameLocations":["291:6:7"],"nodeType":"IdentifierPath","referencedDeclaration":877,"src":"291:6:7"},"referencedDeclaration":877,"src":"291:6:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"visibility":"public"},{"canonicalName":"KDNStaking.Package","id":1021,"members":[{"constant":false,"id":1016,"mutability":"mutable","name":"amount","nameLocation":"356:6:7","nodeType":"VariableDeclaration","scope":1021,"src":"348:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1015,"name":"uint256","nodeType":"ElementaryTypeName","src":"348:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1018,"mutability":"mutable","name":"duration","nameLocation":"381:8:7","nodeType":"VariableDeclaration","scope":1021,"src":"373:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1017,"name":"uint256","nodeType":"ElementaryTypeName","src":"373:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1020,"mutability":"mutable","name":"totalProfitPercentage","nameLocation":"419:21:7","nodeType":"VariableDeclaration","scope":1021,"src":"411:29:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1019,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Package","nameLocation":"329:7:7","nodeType":"StructDefinition","scope":1815,"src":"322:146:7","visibility":"public"},{"canonicalName":"KDNStaking.StakeInfo","id":1036,"members":[{"constant":false,"id":1023,"mutability":"mutable","name":"packageIndex","nameLocation":"512:12:7","nodeType":"VariableDeclaration","scope":1036,"src":"504:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1022,"name":"uint256","nodeType":"ElementaryTypeName","src":"504:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1025,"mutability":"mutable","name":"startTime","nameLocation":"543:9:7","nodeType":"VariableDeclaration","scope":1036,"src":"535:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1024,"name":"uint256","nodeType":"ElementaryTypeName","src":"535:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1027,"mutability":"mutable","name":"lastClaimTime","nameLocation":"571:13:7","nodeType":"VariableDeclaration","scope":1036,"src":"563:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1026,"name":"uint256","nodeType":"ElementaryTypeName","src":"563:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1029,"mutability":"mutable","name":"amount","nameLocation":"603:6:7","nodeType":"VariableDeclaration","scope":1036,"src":"595:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1028,"name":"uint256","nodeType":"ElementaryTypeName","src":"595:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1031,"mutability":"mutable","name":"totalProfitToReceive","nameLocation":"628:20:7","nodeType":"VariableDeclaration","scope":1036,"src":"620:28:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1030,"name":"uint256","nodeType":"ElementaryTypeName","src":"620:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1033,"mutability":"mutable","name":"profitClaimed","nameLocation":"667:13:7","nodeType":"VariableDeclaration","scope":1036,"src":"659:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1032,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1035,"mutability":"mutable","name":"isActive","nameLocation":"696:8:7","nodeType":"VariableDeclaration","scope":1036,"src":"691:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1034,"name":"bool","nodeType":"ElementaryTypeName","src":"691:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"StakeInfo","nameLocation":"483:9:7","nodeType":"StructDefinition","scope":1815,"src":"476:236:7","visibility":"public"},{"canonicalName":"KDNStaking.User","id":1051,"members":[{"constant":false,"id":1038,"mutability":"mutable","name":"upline","nameLocation":"751:6:7","nodeType":"VariableDeclaration","scope":1051,"src":"743:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1037,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1040,"mutability":"mutable","name":"referralBonusBalance","nameLocation":"776:20:7","nodeType":"VariableDeclaration","scope":1051,"src":"768:28:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1039,"name":"uint256","nodeType":"ElementaryTypeName","src":"768:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1042,"mutability":"mutable","name":"managerBonusBalance","nameLocation":"815:19:7","nodeType":"VariableDeclaration","scope":1051,"src":"807:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1041,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1044,"mutability":"mutable","name":"groupTurnover","nameLocation":"853:13:7","nodeType":"VariableDeclaration","scope":1051,"src":"845:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1043,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1046,"mutability":"mutable","name":"currentManagerLevel","nameLocation":"885:19:7","nodeType":"VariableDeclaration","scope":1051,"src":"877:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1045,"name":"uint256","nodeType":"ElementaryTypeName","src":"877:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1050,"mutability":"mutable","name":"stakes","nameLocation":"927:6:7","nodeType":"VariableDeclaration","scope":1051,"src":"915:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakeInfo_$1036_storage_$dyn_storage_ptr","typeString":"struct KDNStaking.StakeInfo[]"},"typeName":{"baseType":{"id":1048,"nodeType":"UserDefinedTypeName","pathNode":{"id":1047,"name":"StakeInfo","nameLocations":["915:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":1036,"src":"915:9:7"},"referencedDeclaration":1036,"src":"915:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo"}},"id":1049,"nodeType":"ArrayTypeName","src":"915:11:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakeInfo_$1036_storage_$dyn_storage_ptr","typeString":"struct KDNStaking.StakeInfo[]"}},"visibility":"internal"}],"name":"User","nameLocation":"727:4:7","nodeType":"StructDefinition","scope":1815,"src":"720:221:7","visibility":"public"},{"constant":false,"functionSelector":"c216212a","id":1055,"mutability":"mutable","name":"packages","nameLocation":"966:8:7","nodeType":"VariableDeclaration","scope":1815,"src":"949:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package[]"},"typeName":{"baseType":{"id":1053,"nodeType":"UserDefinedTypeName","pathNode":{"id":1052,"name":"Package","nameLocations":["949:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1021,"src":"949:7:7"},"referencedDeclaration":1021,"src":"949:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_storage_ptr","typeString":"struct KDNStaking.Package"}},"id":1054,"nodeType":"ArrayTypeName","src":"949:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr","typeString":"struct KDNStaking.Package[]"}},"visibility":"public"},{"constant":false,"functionSelector":"a87430ba","id":1060,"mutability":"mutable","name":"users","nameLocation":"1013:5:7","nodeType":"VariableDeclaration","scope":1815,"src":"981:37:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User)"},"typeName":{"id":1059,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1056,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"981:24:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1058,"nodeType":"UserDefinedTypeName","pathNode":{"id":1057,"name":"User","nameLocations":["1000:4:7"],"nodeType":"IdentifierPath","referencedDeclaration":1051,"src":"1000:4:7"},"referencedDeclaration":1051,"src":"1000:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User"}}},"visibility":"public"},{"constant":false,"functionSelector":"b662abf5","id":1069,"mutability":"mutable","name":"referralPercentages","nameLocation":"1042:19:7","nodeType":"VariableDeclaration","scope":1815,"src":"1025:54:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":1061,"name":"uint256","nodeType":"ElementaryTypeName","src":"1025:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1062,"nodeType":"ArrayTypeName","src":"1025:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":{"components":[{"hexValue":"38","id":1063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1065:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"hexValue":"35","id":1064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1068:1:7","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},{"hexValue":"33","id":1065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1071:1:7","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},{"hexValue":"32","id":1066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1074:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"hexValue":"31","id":1067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"id":1068,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1064:15:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$5_memory_ptr","typeString":"uint8[5] memory"}},"visibility":"public"},{"anonymous":false,"eventSelector":"1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90","id":1077,"name":"Staked","nameLocation":"1094:6:7","nodeType":"EventDefinition","parameters":{"id":1076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1071,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"1117:4:7","nodeType":"VariableDeclaration","scope":1077,"src":"1101:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1070,"name":"address","nodeType":"ElementaryTypeName","src":"1101:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1073,"indexed":false,"mutability":"mutable","name":"packageIndex","nameLocation":"1131:12:7","nodeType":"VariableDeclaration","scope":1077,"src":"1123:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1072,"name":"uint256","nodeType":"ElementaryTypeName","src":"1123:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1075,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1153:6:7","nodeType":"VariableDeclaration","scope":1077,"src":"1145:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1074,"name":"uint256","nodeType":"ElementaryTypeName","src":"1145:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1100:60:7"},"src":"1088:73:7"},{"anonymous":false,"eventSelector":"6a2cbfd0a4e37b7dace5dec7cf930020420c1aa4ca495bbf4972d9fd614ecc3b","id":1083,"name":"ProfitClaimed","nameLocation":"1173:13:7","nodeType":"EventDefinition","parameters":{"id":1082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1079,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"1203:4:7","nodeType":"VariableDeclaration","scope":1083,"src":"1187:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1078,"name":"address","nodeType":"ElementaryTypeName","src":"1187:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1081,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1217:6:7","nodeType":"VariableDeclaration","scope":1083,"src":"1209:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1080,"name":"uint256","nodeType":"ElementaryTypeName","src":"1209:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:38:7"},"src":"1167:58:7"},{"anonymous":false,"eventSelector":"b1da5bd041c3a852a00414e52da5f60612375abee4e87c90003be773e8dc5c8d","id":1093,"name":"ReferralBonusPaid","nameLocation":"1237:17:7","nodeType":"EventDefinition","parameters":{"id":1092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1085,"indexed":true,"mutability":"mutable","name":"upline","nameLocation":"1271:6:7","nodeType":"VariableDeclaration","scope":1093,"src":"1255:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1084,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1087,"indexed":true,"mutability":"mutable","name":"downline","nameLocation":"1295:8:7","nodeType":"VariableDeclaration","scope":1093,"src":"1279:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1086,"name":"address","nodeType":"ElementaryTypeName","src":"1279:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1089,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1313:6:7","nodeType":"VariableDeclaration","scope":1093,"src":"1305:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1088,"name":"uint256","nodeType":"ElementaryTypeName","src":"1305:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1091,"indexed":false,"mutability":"mutable","name":"level","nameLocation":"1329:5:7","nodeType":"VariableDeclaration","scope":1093,"src":"1321:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1090,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1254:81:7"},"src":"1231:105:7"},{"anonymous":false,"eventSelector":"9d4af69323c427453609e945e4119e0a9996a515582708d8866e5609a59e49cf","id":1101,"name":"ManagerBonusClaimed","nameLocation":"1348:19:7","nodeType":"EventDefinition","parameters":{"id":1100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1095,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"1384:4:7","nodeType":"VariableDeclaration","scope":1101,"src":"1368:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1094,"name":"address","nodeType":"ElementaryTypeName","src":"1368:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1097,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1398:6:7","nodeType":"VariableDeclaration","scope":1101,"src":"1390:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1096,"name":"uint256","nodeType":"ElementaryTypeName","src":"1390:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1099,"indexed":false,"mutability":"mutable","name":"level","nameLocation":"1414:5:7","nodeType":"VariableDeclaration","scope":1101,"src":"1406:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1098,"name":"uint256","nodeType":"ElementaryTypeName","src":"1406:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1367:53:7"},"src":"1342:79:7"},{"body":{"id":1214,"nodeType":"Block","src":"1480:574:7","statements":[{"expression":{"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1110,"name":"kdnToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1014,"src":"1491:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1112,"name":"_kdnToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"1509:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1111,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"1502:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$877_$","typeString":"type(contract IERC20)"}},"id":1113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1502:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"src":"1491:28:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"id":1115,"nodeType":"ExpressionStatement","src":"1491:28:7"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"id":1124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1610:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1615:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1619:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1615:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1610:11:7","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"}},{"hexValue":"313230","id":1125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1623:3:7","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"hexValue":"3130","id":1126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":1119,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1602:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1021_storage_ptr_$","typeString":"type(struct KDNStaking.Package storage pointer)"}},"id":1127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1602:29:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}],"expression":{"id":1116,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"1588:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1597:4:7","memberName":"push","nodeType":"MemberAccess","src":"1588:13:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$_t_struct$_Package_$1021_storage_$returns$__$attached_to$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$","typeString":"function (struct KDNStaking.Package storage ref[] storage pointer,struct KDNStaking.Package storage ref)"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1588:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1129,"nodeType":"ExpressionStatement","src":"1588:44:7"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_50000000000000000000_by_1","typeString":"int_const 50000000000000000000"},"id":1138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3530","id":1134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1678:2:7","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1683:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1687:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1683:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1678:11:7","typeDescriptions":{"typeIdentifier":"t_rational_50000000000000000000_by_1","typeString":"int_const 50000000000000000000"}},{"hexValue":"313130","id":1139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1691:3:7","typeDescriptions":{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},"value":"110"},{"hexValue":"3135","id":1140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1696:2:7","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_50000000000000000000_by_1","typeString":"int_const 50000000000000000000"},{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"}],"id":1133,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1670:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1021_storage_ptr_$","typeString":"type(struct KDNStaking.Package storage pointer)"}},"id":1141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1670:29:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}],"expression":{"id":1130,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"1656:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1665:4:7","memberName":"push","nodeType":"MemberAccess","src":"1656:13:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$_t_struct$_Package_$1021_storage_$returns$__$attached_to$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$","typeString":"function (struct KDNStaking.Package storage ref[] storage pointer,struct KDNStaking.Package storage ref)"}},"id":1142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1143,"nodeType":"ExpressionStatement","src":"1656:44:7"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"id":1152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":1148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1744:3:7","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1750:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1754:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1750:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1744:12:7","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}},{"hexValue":"313030","id":1153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1758:3:7","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"3230","id":1154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1763:2:7","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1147,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1736:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1021_storage_ptr_$","typeString":"type(struct KDNStaking.Package storage pointer)"}},"id":1155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1736:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}],"expression":{"id":1144,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"1722:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1731:4:7","memberName":"push","nodeType":"MemberAccess","src":"1722:13:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$_t_struct$_Package_$1021_storage_$returns$__$attached_to$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$","typeString":"function (struct KDNStaking.Package storage ref[] storage pointer,struct KDNStaking.Package storage ref)"}},"id":1156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1722:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1157,"nodeType":"ExpressionStatement","src":"1722:45:7"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_500000000000000000000_by_1","typeString":"int_const 500000000000000000000"},"id":1166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"353030","id":1162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1811:3:7","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1817:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1821:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1817:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1811:12:7","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000000_by_1","typeString":"int_const 500000000000000000000"}},{"hexValue":"313030","id":1167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1825:3:7","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"3230","id":1168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1830:2:7","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000000_by_1","typeString":"int_const 500000000000000000000"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1161,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1803:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1021_storage_ptr_$","typeString":"type(struct KDNStaking.Package storage pointer)"}},"id":1169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1803:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}],"expression":{"id":1158,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"1789:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1798:4:7","memberName":"push","nodeType":"MemberAccess","src":"1789:13:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$_t_struct$_Package_$1021_storage_$returns$__$attached_to$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$","typeString":"function (struct KDNStaking.Package storage ref[] storage pointer,struct KDNStaking.Package storage ref)"}},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1789:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1171,"nodeType":"ExpressionStatement","src":"1789:45:7"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"id":1180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31303030","id":1176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1876:4:7","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1883:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1887:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1883:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1876:13:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}},{"hexValue":"3930","id":1181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1891:2:7","typeDescriptions":{"typeIdentifier":"t_rational_90_by_1","typeString":"int_const 90"},"value":"90"},{"hexValue":"3230","id":1182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1895:2:7","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},{"typeIdentifier":"t_rational_90_by_1","typeString":"int_const 90"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1175,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1868:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1021_storage_ptr_$","typeString":"type(struct KDNStaking.Package storage pointer)"}},"id":1183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1868:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}],"expression":{"id":1172,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"1854:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1863:4:7","memberName":"push","nodeType":"MemberAccess","src":"1854:13:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$_t_struct$_Package_$1021_storage_$returns$__$attached_to$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$","typeString":"function (struct KDNStaking.Package storage ref[] storage pointer,struct KDNStaking.Package storage ref)"}},"id":1184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1854:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1185,"nodeType":"ExpressionStatement","src":"1854:45:7"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_3000000000000000000000_by_1","typeString":"int_const 3000000000000000000000"},"id":1194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33303030","id":1190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1945:4:7","typeDescriptions":{"typeIdentifier":"t_rational_3000_by_1","typeString":"int_const 3000"},"value":"3000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1952:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1956:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1952:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1945:13:7","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000000000_by_1","typeString":"int_const 3000000000000000000000"}},{"hexValue":"3830","id":1195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1960:2:7","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"hexValue":"3235","id":1196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1964:2:7","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3000000000000000000000_by_1","typeString":"int_const 3000000000000000000000"},{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"}],"id":1189,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1937:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1021_storage_ptr_$","typeString":"type(struct KDNStaking.Package storage pointer)"}},"id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1937:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}],"expression":{"id":1186,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"1923:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1932:4:7","memberName":"push","nodeType":"MemberAccess","src":"1923:13:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$_t_struct$_Package_$1021_storage_$returns$__$attached_to$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$","typeString":"function (struct KDNStaking.Package storage ref[] storage pointer,struct KDNStaking.Package storage ref)"}},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1923:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1199,"nodeType":"ExpressionStatement","src":"1923:45:7"},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_5000000000000000000000_by_1","typeString":"int_const 5000000000000000000000"},"id":1208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"35303030","id":1204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2013:4:7","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2020:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2024:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2020:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"2013:13:7","typeDescriptions":{"typeIdentifier":"t_rational_5000000000000000000000_by_1","typeString":"int_const 5000000000000000000000"}},{"hexValue":"3730","id":1209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2028:2:7","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},{"hexValue":"3335","id":1210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2032:2:7","typeDescriptions":{"typeIdentifier":"t_rational_35_by_1","typeString":"int_const 35"},"value":"35"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5000000000000000000000_by_1","typeString":"int_const 5000000000000000000000"},{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},{"typeIdentifier":"t_rational_35_by_1","typeString":"int_const 35"}],"id":1203,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"2005:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1021_storage_ptr_$","typeString":"type(struct KDNStaking.Package storage pointer)"}},"id":1211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}],"expression":{"id":1200,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"1991:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2000:4:7","memberName":"push","nodeType":"MemberAccess","src":"1991:13:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$_t_struct$_Package_$1021_storage_$returns$__$attached_to$_t_array$_t_struct$_Package_$1021_storage_$dyn_storage_ptr_$","typeString":"function (struct KDNStaking.Package storage ref[] storage pointer,struct KDNStaking.Package storage ref)"}},"id":1212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1213,"nodeType":"ExpressionStatement","src":"1991:45:7"}]},"id":1215,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":1106,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1468:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1472:6:7","memberName":"sender","nodeType":"MemberAccess","src":"1468:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1108,"kind":"baseConstructorSpecifier","modifierName":{"id":1105,"name":"Ownable","nameLocations":["1460:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"1460:7:7"},"nodeType":"ModifierInvocation","src":"1460:19:7"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1103,"mutability":"mutable","name":"_kdnToken","nameLocation":"1449:9:7","nodeType":"VariableDeclaration","scope":1215,"src":"1441:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1102,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1440:19:7"},"returnParameters":{"id":1109,"nodeType":"ParameterList","parameters":[],"src":"1480:0:7"},"scope":1815,"src":"1429:625:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":1266,"nodeType":"Block","src":"2106:301:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1221,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"2125:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1224,"indexExpression":{"expression":{"id":1222,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2131:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2135:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2131:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2125:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2143:6:7","memberName":"upline","nodeType":"MemberAccess","referencedDeclaration":1038,"src":"2125:24:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2161:1:7","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":1227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2153:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1226,"name":"address","nodeType":"ElementaryTypeName","src":"2153:7:7","typeDescriptions":{}}},"id":1229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2153:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2125:38:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c72656164792072656769737465726564","id":1231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2165:20:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2","typeString":"literal_string \"Already registered\""},"value":"Already registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2","typeString":"literal_string \"Already registered\""}],"id":1220,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2117:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2117:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1233,"nodeType":"ExpressionStatement","src":"2117:69:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1235,"name":"_upline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1217,"src":"2205:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1236,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2216:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2220:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2216:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2205:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f7420726566657220796f757273656c66","id":1239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2228:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51","typeString":"literal_string \"Cannot refer yourself\""},"value":"Cannot refer yourself"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51","typeString":"literal_string \"Cannot refer yourself\""}],"id":1234,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2197:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2197:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1241,"nodeType":"ExpressionStatement","src":"2197:55:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"baseExpression":{"id":1243,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"2271:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1245,"indexExpression":{"id":1244,"name":"_upline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1217,"src":"2277:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2271:14:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2286:6:7","memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":1050,"src":"2271:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakeInfo_$1036_storage_$dyn_storage","typeString":"struct KDNStaking.StakeInfo storage ref[] storage ref"}},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2293:6:7","memberName":"length","nodeType":"MemberAccess","src":"2271:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2302:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2271:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1250,"name":"_upline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1217,"src":"2307:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1251,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2318:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2318:7:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2307:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2271:54:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642075706c696e65","id":1255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2327:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8","typeString":"literal_string \"Invalid upline\""},"value":"Invalid upline"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8","typeString":"literal_string \"Invalid upline\""}],"id":1242,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2263:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:81:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1257,"nodeType":"ExpressionStatement","src":"2263:81:7"},{"expression":{"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1258,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"2365:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1261,"indexExpression":{"expression":{"id":1259,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2371:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2375:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2371:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2365:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2383:6:7","memberName":"upline","nodeType":"MemberAccess","referencedDeclaration":1038,"src":"2365:24:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1263,"name":"_upline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1217,"src":"2392:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2365:34:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1265,"nodeType":"ExpressionStatement","src":"2365:34:7"}]},"functionSelector":"4420e486","id":1267,"implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"2071:8:7","nodeType":"FunctionDefinition","parameters":{"id":1218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1217,"mutability":"mutable","name":"_upline","nameLocation":"2088:7:7","nodeType":"VariableDeclaration","scope":1267,"src":"2080:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1216,"name":"address","nodeType":"ElementaryTypeName","src":"2080:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2079:17:7"},"returnParameters":{"id":1219,"nodeType":"ParameterList","parameters":[],"src":"2106:0:7"},"scope":1815,"src":"2062:345:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1357,"nodeType":"Block","src":"2475:845:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1275,"name":"_packageIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"2494:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1276,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"2510:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2519:6:7","memberName":"length","nodeType":"MemberAccess","src":"2510:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2494:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964207061636b616765","id":1279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2527:17:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f","typeString":"literal_string \"Invalid package\""},"value":"Invalid package"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f","typeString":"literal_string \"Invalid package\""}],"id":1274,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2486:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:59:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1281,"nodeType":"ExpressionStatement","src":"2486:59:7"},{"assignments":[1284],"declarations":[{"constant":false,"id":1284,"mutability":"mutable","name":"pkg","nameLocation":"2571:3:7","nodeType":"VariableDeclaration","scope":1357,"src":"2556:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package"},"typeName":{"id":1283,"nodeType":"UserDefinedTypeName","pathNode":{"id":1282,"name":"Package","nameLocations":["2556:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1021,"src":"2556:7:7"},"referencedDeclaration":1021,"src":"2556:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_storage_ptr","typeString":"struct KDNStaking.Package"}},"visibility":"internal"}],"id":1288,"initialValue":{"baseExpression":{"id":1285,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"2577:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1287,"indexExpression":{"id":1286,"name":"_packageIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"2586:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2577:23:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_storage","typeString":"struct KDNStaking.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2556:44:7"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":1292,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2651:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2655:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2651:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1296,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2671:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_KDNStaking_$1815","typeString":"contract KDNStaking"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KDNStaking_$1815","typeString":"contract KDNStaking"}],"id":1295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2663:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1294,"name":"address","nodeType":"ElementaryTypeName","src":"2663:7:7","typeDescriptions":{}}},"id":1297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1298,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"2678:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2682:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1016,"src":"2678:10:7","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":1290,"name":"kdnToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1014,"src":"2629:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"id":1291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2638:12:7","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":876,"src":"2629:21:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":1300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2629:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206661696c6564","id":1301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2691:17:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""},"value":"Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""}],"id":1289,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2621:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2621:88:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1303,"nodeType":"ExpressionStatement","src":"2621:88:7"},{"assignments":[1305],"declarations":[{"constant":false,"id":1305,"mutability":"mutable","name":"totalProfit","nameLocation":"2730:11:7","nodeType":"VariableDeclaration","scope":1357,"src":"2722:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2722:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1314,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1306,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"2745:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2749:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1016,"src":"2745:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":1308,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"2758:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2762:21:7","memberName":"totalProfitPercentage","nodeType":"MemberAccess","referencedDeclaration":1020,"src":"2758:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2745:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2744:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":1312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2787:3:7","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2744:46:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2722:68:7"},{"expression":{"arguments":[{"arguments":[{"id":1322,"name":"_packageIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"2880:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1323,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2919:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2925:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"2919:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1325,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2964:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2970:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"2964:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1327,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"3002:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3006:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1016,"src":"3002:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1329,"name":"totalProfit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"3049:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":1330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3090:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"74727565","id":1331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3116:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1321,"name":"StakeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1036,"src":"2841:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakeInfo_$1036_storage_ptr_$","typeString":"type(struct KDNStaking.StakeInfo storage pointer)"}},"id":1332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2866:12:7","2908:9:7","2949:13:7","2994:6:7","3027:20:7","3075:13:7","3106:8:7"],"names":["packageIndex","startTime","lastClaimTime","amount","totalProfitToReceive","profitClaimed","isActive"],"nodeType":"FunctionCall","src":"2841:291:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_memory_ptr","typeString":"struct KDNStaking.StakeInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakeInfo_$1036_memory_ptr","typeString":"struct KDNStaking.StakeInfo memory"}],"expression":{"expression":{"baseExpression":{"id":1315,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"2811:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1318,"indexExpression":{"expression":{"id":1316,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2817:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2821:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2817:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2811:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2829:6:7","memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":1050,"src":"2811:24:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakeInfo_$1036_storage_$dyn_storage","typeString":"struct KDNStaking.StakeInfo storage ref[] storage ref"}},"id":1320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2836:4:7","memberName":"push","nodeType":"MemberAccess","src":"2811:29:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_StakeInfo_$1036_storage_$dyn_storage_ptr_$_t_struct$_StakeInfo_$1036_storage_$returns$__$attached_to$_t_array$_t_struct$_StakeInfo_$1036_storage_$dyn_storage_ptr_$","typeString":"function (struct KDNStaking.StakeInfo storage ref[] storage pointer,struct KDNStaking.StakeInfo storage ref)"}},"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:322:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1334,"nodeType":"ExpressionStatement","src":"2811:322:7"},{"expression":{"arguments":[{"expression":{"id":1336,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3171:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3175:6:7","memberName":"sender","nodeType":"MemberAccess","src":"3171:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1338,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"3183:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3187:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1016,"src":"3183:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1335,"name":"_distributeReferralBonus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1427,"src":"3146:24:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3146:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1341,"nodeType":"ExpressionStatement","src":"3146:48:7"},{"expression":{"arguments":[{"expression":{"id":1343,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3226:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3230:6:7","memberName":"sender","nodeType":"MemberAccess","src":"3226:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1345,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"3238:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3242:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1016,"src":"3238:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1342,"name":"_updateGroupTurnover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"3205:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3205:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1348,"nodeType":"ExpressionStatement","src":"3205:44:7"},{"eventCall":{"arguments":[{"expression":{"id":1350,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3274:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3278:6:7","memberName":"sender","nodeType":"MemberAccess","src":"3274:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1352,"name":"_packageIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"3286:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1353,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"3301:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3305:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1016,"src":"3301:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1349,"name":"Staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"3267:6:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":1355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3267:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1356,"nodeType":"EmitStatement","src":"3262:50:7"}]},"functionSelector":"a694fc3a","id":1358,"implemented":true,"kind":"function","modifiers":[{"id":1272,"kind":"modifierInvocation","modifierName":{"id":1271,"name":"nonReentrant","nameLocations":["2462:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":966,"src":"2462:12:7"},"nodeType":"ModifierInvocation","src":"2462:12:7"}],"name":"stake","nameLocation":"2424:5:7","nodeType":"FunctionDefinition","parameters":{"id":1270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1269,"mutability":"mutable","name":"_packageIndex","nameLocation":"2438:13:7","nodeType":"VariableDeclaration","scope":1358,"src":"2430:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1268,"name":"uint256","nodeType":"ElementaryTypeName","src":"2430:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2429:23:7"},"returnParameters":{"id":1273,"nodeType":"ParameterList","parameters":[],"src":"2475:0:7"},"scope":1815,"src":"2415:905:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1426,"nodeType":"Block","src":"3403:464:7","statements":[{"assignments":[1366],"declarations":[{"constant":false,"id":1366,"mutability":"mutable","name":"currentUpline","nameLocation":"3422:13:7","nodeType":"VariableDeclaration","scope":1426,"src":"3414:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1365,"name":"address","nodeType":"ElementaryTypeName","src":"3414:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1371,"initialValue":{"expression":{"baseExpression":{"id":1367,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"3438:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1369,"indexExpression":{"id":1368,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1360,"src":"3444:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3438:12:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3451:6:7","memberName":"upline","nodeType":"MemberAccess","referencedDeclaration":1038,"src":"3438:19:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3414:43:7"},{"body":{"id":1424,"nodeType":"Block","src":"3500:360:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1382,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"3519:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3544:1:7","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":1384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3536:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1383,"name":"address","nodeType":"ElementaryTypeName","src":"3536:7:7","typeDescriptions":{}}},"id":1386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3536:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3519:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1389,"nodeType":"IfStatement","src":"3515:38:7","trueBody":{"id":1388,"nodeType":"Break","src":"3548:5:7"}},{"assignments":[1391],"declarations":[{"constant":false,"id":1391,"mutability":"mutable","name":"bonus","nameLocation":"3590:5:7","nodeType":"VariableDeclaration","scope":1424,"src":"3582:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1390,"name":"uint256","nodeType":"ElementaryTypeName","src":"3582:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1400,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1392,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1362,"src":"3599:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":1393,"name":"referralPercentages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"3609:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1395,"indexExpression":{"id":1394,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1373,"src":"3629:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3609:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3599:32:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1397,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3598:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":1398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3635:3:7","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"3598:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3582:56:7"},{"expression":{"id":1406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1401,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"3653:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1403,"indexExpression":{"id":1402,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"3659:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3653:20:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3674:20:7","memberName":"referralBonusBalance","nodeType":"MemberAccess","referencedDeclaration":1040,"src":"3653:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1405,"name":"bonus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"3698:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3653:50:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1407,"nodeType":"ExpressionStatement","src":"3653:50:7"},{"eventCall":{"arguments":[{"id":1409,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"3755:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1410,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1360,"src":"3770:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1411,"name":"bonus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"3777:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1412,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1373,"src":"3784:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3788:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3784:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1408,"name":"ReferralBonusPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"3737:17:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1416,"nodeType":"EmitStatement","src":"3732:58:7"},{"expression":{"id":1422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1417,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"3805:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":1418,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"3821:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1420,"indexExpression":{"id":1419,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"3827:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3821:20:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3842:6:7","memberName":"upline","nodeType":"MemberAccess","referencedDeclaration":1038,"src":"3821:27:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3805:43:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1423,"nodeType":"ExpressionStatement","src":"3805:43:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1373,"src":"3488:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"35","id":1377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3492:1:7","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"3488:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1425,"initializationExpression":{"assignments":[1373],"declarations":[{"constant":false,"id":1373,"mutability":"mutable","name":"i","nameLocation":"3481:1:7","nodeType":"VariableDeclaration","scope":1425,"src":"3473:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1372,"name":"uint256","nodeType":"ElementaryTypeName","src":"3473:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1375,"initialValue":{"hexValue":"30","id":1374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3485:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3473:13:7"},"loopExpression":{"expression":{"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3495:3:7","subExpression":{"id":1379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1373,"src":"3495:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1381,"nodeType":"ExpressionStatement","src":"3495:3:7"},"nodeType":"ForStatement","src":"3468:392:7"}]},"id":1427,"implemented":true,"kind":"function","modifiers":[],"name":"_distributeReferralBonus","nameLocation":"3337:24:7","nodeType":"FunctionDefinition","parameters":{"id":1363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1360,"mutability":"mutable","name":"_user","nameLocation":"3370:5:7","nodeType":"VariableDeclaration","scope":1427,"src":"3362:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1359,"name":"address","nodeType":"ElementaryTypeName","src":"3362:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1362,"mutability":"mutable","name":"_amount","nameLocation":"3385:7:7","nodeType":"VariableDeclaration","scope":1427,"src":"3377:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1361,"name":"uint256","nodeType":"ElementaryTypeName","src":"3377:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3361:32:7"},"returnParameters":{"id":1364,"nodeType":"ParameterList","parameters":[],"src":"3403:0:7"},"scope":1815,"src":"3328:539:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1463,"nodeType":"Block","src":"3946:238:7","statements":[{"assignments":[1435],"declarations":[{"constant":false,"id":1435,"mutability":"mutable","name":"currentUpline","nameLocation":"3965:13:7","nodeType":"VariableDeclaration","scope":1463,"src":"3957:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1434,"name":"address","nodeType":"ElementaryTypeName","src":"3957:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1440,"initialValue":{"expression":{"baseExpression":{"id":1436,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"3981:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1438,"indexExpression":{"id":1437,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1429,"src":"3987:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3981:12:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3994:6:7","memberName":"upline","nodeType":"MemberAccess","referencedDeclaration":1038,"src":"3981:19:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3957:43:7"},{"body":{"id":1461,"nodeType":"Block","src":"4047:130:7","statements":[{"expression":{"id":1452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1447,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"4062:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1449,"indexExpression":{"id":1448,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"4068:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4062:20:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4083:13:7","memberName":"groupTurnover","nodeType":"MemberAccess","referencedDeclaration":1044,"src":"4062:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1451,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"4100:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4062:45:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1453,"nodeType":"ExpressionStatement","src":"4062:45:7"},{"expression":{"id":1459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1454,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"4122:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":1455,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"4138:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1457,"indexExpression":{"id":1456,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"4144:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4138:20:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4159:6:7","memberName":"upline","nodeType":"MemberAccess","referencedDeclaration":1038,"src":"4138:27:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4122:43:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1460,"nodeType":"ExpressionStatement","src":"4122:43:7"}]},"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1441,"name":"currentUpline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"4018:13:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4043:1:7","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":1443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4035:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1442,"name":"address","nodeType":"ElementaryTypeName","src":"4035:7:7","typeDescriptions":{}}},"id":1445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4035:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4018:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1462,"nodeType":"WhileStatement","src":"4011:166:7"}]},"id":1464,"implemented":true,"kind":"function","modifiers":[],"name":"_updateGroupTurnover","nameLocation":"3884:20:7","nodeType":"FunctionDefinition","parameters":{"id":1432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1429,"mutability":"mutable","name":"_user","nameLocation":"3913:5:7","nodeType":"VariableDeclaration","scope":1464,"src":"3905:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1428,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1431,"mutability":"mutable","name":"_amount","nameLocation":"3928:7:7","nodeType":"VariableDeclaration","scope":1464,"src":"3920:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1430,"name":"uint256","nodeType":"ElementaryTypeName","src":"3920:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3904:32:7"},"returnParameters":{"id":1433,"nodeType":"ParameterList","parameters":[],"src":"3946:0:7"},"scope":1815,"src":"3875:309:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1635,"nodeType":"Block","src":"4256:1429:7","statements":[{"assignments":[1473],"declarations":[{"constant":false,"id":1473,"mutability":"mutable","name":"user","nameLocation":"4280:4:7","nodeType":"VariableDeclaration","scope":1635,"src":"4267:17:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User"},"typeName":{"id":1472,"nodeType":"UserDefinedTypeName","pathNode":{"id":1471,"name":"User","nameLocations":["4267:4:7"],"nodeType":"IdentifierPath","referencedDeclaration":1051,"src":"4267:4:7"},"referencedDeclaration":1051,"src":"4267:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User"}},"visibility":"internal"}],"id":1478,"initialValue":{"baseExpression":{"id":1474,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"4287:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1477,"indexExpression":{"expression":{"id":1475,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4293:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4297:6:7","memberName":"sender","nodeType":"MemberAccess","src":"4293:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4287:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4267:37:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1480,"name":"_stakeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1466,"src":"4323:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":1481,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"4337:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User storage pointer"}},"id":1482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4342:6:7","memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":1050,"src":"4337:11:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakeInfo_$1036_storage_$dyn_storage","typeString":"struct KDNStaking.StakeInfo storage ref[] storage ref"}},"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4349:6:7","memberName":"length","nodeType":"MemberAccess","src":"4337:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4323:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964207374616b6520696e646578","id":1485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4357:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070","typeString":"literal_string \"Invalid stake index\""},"value":"Invalid stake index"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070","typeString":"literal_string \"Invalid stake index\""}],"id":1479,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4315:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:64:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1487,"nodeType":"ExpressionStatement","src":"4315:64:7"},{"assignments":[1490],"declarations":[{"constant":false,"id":1490,"mutability":"mutable","name":"s","nameLocation":"4408:1:7","nodeType":"VariableDeclaration","scope":1635,"src":"4390:19:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo"},"typeName":{"id":1489,"nodeType":"UserDefinedTypeName","pathNode":{"id":1488,"name":"StakeInfo","nameLocations":["4390:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":1036,"src":"4390:9:7"},"referencedDeclaration":1036,"src":"4390:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo"}},"visibility":"internal"}],"id":1495,"initialValue":{"baseExpression":{"expression":{"id":1491,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"4412:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User storage pointer"}},"id":1492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4417:6:7","memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":1050,"src":"4412:11:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakeInfo_$1036_storage_$dyn_storage","typeString":"struct KDNStaking.StakeInfo storage ref[] storage ref"}},"id":1494,"indexExpression":{"id":1493,"name":"_stakeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1466,"src":"4424:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4412:24:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage","typeString":"struct KDNStaking.StakeInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4390:46:7"},{"expression":{"arguments":[{"expression":{"id":1497,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4455:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4457:8:7","memberName":"isActive","nodeType":"MemberAccess","referencedDeclaration":1035,"src":"4455:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374616b65206e6f7420616374697665","id":1499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4467:18:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5","typeString":"literal_string \"Stake not active\""},"value":"Stake not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5","typeString":"literal_string \"Stake not active\""}],"id":1496,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4447:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4447:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1501,"nodeType":"ExpressionStatement","src":"4447:39:7"},{"assignments":[1503],"declarations":[{"constant":false,"id":1503,"mutability":"mutable","name":"currentTime","nameLocation":"4507:11:7","nodeType":"VariableDeclaration","scope":1635,"src":"4499:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1502,"name":"uint256","nodeType":"ElementaryTypeName","src":"4499:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1506,"initialValue":{"expression":{"id":1504,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4521:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4527:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"4521:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4499:37:7"},{"assignments":[1509],"declarations":[{"constant":false,"id":1509,"mutability":"mutable","name":"pkg","nameLocation":"4562:3:7","nodeType":"VariableDeclaration","scope":1635,"src":"4547:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package"},"typeName":{"id":1508,"nodeType":"UserDefinedTypeName","pathNode":{"id":1507,"name":"Package","nameLocations":["4547:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1021,"src":"4547:7:7"},"referencedDeclaration":1021,"src":"4547:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_storage_ptr","typeString":"struct KDNStaking.Package"}},"visibility":"internal"}],"id":1514,"initialValue":{"baseExpression":{"id":1510,"name":"packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"4568:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Package_$1021_storage_$dyn_storage","typeString":"struct KDNStaking.Package storage ref[] storage ref"}},"id":1513,"indexExpression":{"expression":{"id":1511,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4577:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4579:12:7","memberName":"packageIndex","nodeType":"MemberAccess","referencedDeclaration":1023,"src":"4577:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4568:24:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_storage","typeString":"struct KDNStaking.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4547:45:7"},{"assignments":[1516],"declarations":[{"constant":false,"id":1516,"mutability":"mutable","name":"elapsedTime","nameLocation":"4621:11:7","nodeType":"VariableDeclaration","scope":1635,"src":"4613:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1515,"name":"uint256","nodeType":"ElementaryTypeName","src":"4613:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1521,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1517,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"4635:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":1518,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4649:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4651:13:7","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":1027,"src":"4649:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4635:29:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4613:51:7"},{"assignments":[1523],"declarations":[{"constant":false,"id":1523,"mutability":"mutable","name":"totalDuration","nameLocation":"4683:13:7","nodeType":"VariableDeclaration","scope":1635,"src":"4675:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4675:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1528,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1524,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1509,"src":"4699:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4703:8:7","memberName":"duration","nodeType":"MemberAccess","referencedDeclaration":1018,"src":"4699:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":1526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4714:6:7","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"4699:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4675:45:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1529,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"4745:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1530,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4759:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4761:9:7","memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":1025,"src":"4759:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1532,"name":"totalDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"4773:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4759:27:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4745:41:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1550,"nodeType":"IfStatement","src":"4741:173:7","trueBody":{"id":1549,"nodeType":"Block","src":"4788:126:7","statements":[{"expression":{"id":1540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1535,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"4803:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1536,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4817:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4819:9:7","memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":1025,"src":"4817:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1538,"name":"totalDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"4831:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4817:27:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4803:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1541,"nodeType":"ExpressionStatement","src":"4803:41:7"},{"expression":{"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1542,"name":"elapsedTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"4859:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1543,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"4873:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":1544,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4887:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4889:13:7","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":1027,"src":"4887:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:29:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4859:43:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1548,"nodeType":"ExpressionStatement","src":"4859:43:7"}]}},{"assignments":[1552],"declarations":[{"constant":false,"id":1552,"mutability":"mutable","name":"dailyProfit","nameLocation":"4934:11:7","nodeType":"VariableDeclaration","scope":1635,"src":"4926:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1551,"name":"uint256","nodeType":"ElementaryTypeName","src":"4926:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1558,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1553,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4948:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4950:20:7","memberName":"totalProfitToReceive","nodeType":"MemberAccess","referencedDeclaration":1031,"src":"4948:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":1555,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1509,"src":"4973:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1021_memory_ptr","typeString":"struct KDNStaking.Package memory"}},"id":1556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4977:8:7","memberName":"duration","nodeType":"MemberAccess","referencedDeclaration":1018,"src":"4973:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4948:37:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4926:59:7"},{"assignments":[1560],"declarations":[{"constant":false,"id":1560,"mutability":"mutable","name":"profitToClaim","nameLocation":"5004:13:7","nodeType":"VariableDeclaration","scope":1635,"src":"4996:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1559,"name":"uint256","nodeType":"ElementaryTypeName","src":"4996:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1567,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1561,"name":"dailyProfit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1552,"src":"5021:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1562,"name":"elapsedTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"5035:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5021:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1564,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5020:27:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31","id":1565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5050:6:7","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"5020:36:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4996:60:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1569,"name":"profitToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1560,"src":"5077:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5093:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5077:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f2070726f66697420746f20636c61696d20796574","id":1572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5096:24:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad","typeString":"literal_string \"No profit to claim yet\""},"value":"No profit to claim yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad","typeString":"literal_string \"No profit to claim yet\""}],"id":1568,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5069:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5069:52:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1574,"nodeType":"ExpressionStatement","src":"5069:52:7"},{"expression":{"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1575,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"5134:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5136:13:7","memberName":"profitClaimed","nodeType":"MemberAccess","referencedDeclaration":1033,"src":"5134:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1578,"name":"profitToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1560,"src":"5153:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5134:32:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1580,"nodeType":"ExpressionStatement","src":"5134:32:7"},{"expression":{"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1581,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"5177:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5179:13:7","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":1027,"src":"5177:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1584,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5195:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5201:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"5195:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5177:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1587,"nodeType":"ExpressionStatement","src":"5177:33:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1588,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"5227:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5229:13:7","memberName":"profitClaimed","nodeType":"MemberAccess","referencedDeclaration":1033,"src":"5227:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":1590,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"5246:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5248:20:7","memberName":"totalProfitToReceive","nodeType":"MemberAccess","referencedDeclaration":1031,"src":"5246:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5227:41:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1627,"nodeType":"Block","src":"5521:99:7","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":1620,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5562:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5566:6:7","memberName":"sender","nodeType":"MemberAccess","src":"5562:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1622,"name":"profitToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1560,"src":"5574:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1618,"name":"kdnToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1014,"src":"5544:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5553:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":844,"src":"5544:17:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5544:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206661696c6564","id":1624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5590:17:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""},"value":"Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""}],"id":1617,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5536:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1626,"nodeType":"ExpressionStatement","src":"5536:72:7"}]},"id":1628,"nodeType":"IfStatement","src":"5223:397:7","trueBody":{"id":1616,"nodeType":"Block","src":"5270:245:7","statements":[{"expression":{"id":1597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1593,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"5285:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5287:8:7","memberName":"isActive","nodeType":"MemberAccess","referencedDeclaration":1035,"src":"5285:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5298:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5285:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1598,"nodeType":"ExpressionStatement","src":"5285:18:7"},{"assignments":[1600],"declarations":[{"constant":false,"id":1600,"mutability":"mutable","name":"totalReturn","nameLocation":"5374:11:7","nodeType":"VariableDeclaration","scope":1616,"src":"5366:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1599,"name":"uint256","nodeType":"ElementaryTypeName","src":"5366:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1605,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1601,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"5388:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_StakeInfo_$1036_storage_ptr","typeString":"struct KDNStaking.StakeInfo storage pointer"}},"id":1602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5390:6:7","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":1029,"src":"5388:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1603,"name":"profitToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1560,"src":"5399:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5388:24:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5366:46:7"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":1609,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5453:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:6:7","memberName":"sender","nodeType":"MemberAccess","src":"5453:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1611,"name":"totalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1600,"src":"5465:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1607,"name":"kdnToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1014,"src":"5435:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5444:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":844,"src":"5435:17:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5435:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46696e616c207472616e73666572206661696c6564","id":1613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5479:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9","typeString":"literal_string \"Final transfer failed\""},"value":"Final transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9","typeString":"literal_string \"Final transfer failed\""}],"id":1606,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5427:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5427:76:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1615,"nodeType":"ExpressionStatement","src":"5427:76:7"}]}},{"eventCall":{"arguments":[{"expression":{"id":1630,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5651:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5655:6:7","memberName":"sender","nodeType":"MemberAccess","src":"5651:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1632,"name":"profitToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1560,"src":"5663:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1629,"name":"ProfitClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1083,"src":"5637:13:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5637:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1634,"nodeType":"EmitStatement","src":"5632:45:7"}]},"functionSelector":"d22dee48","id":1636,"implemented":true,"kind":"function","modifiers":[{"id":1469,"kind":"modifierInvocation","modifierName":{"id":1468,"name":"nonReentrant","nameLocations":["4243:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":966,"src":"4243:12:7"},"nodeType":"ModifierInvocation","src":"4243:12:7"}],"name":"claimProfit","nameLocation":"4201:11:7","nodeType":"FunctionDefinition","parameters":{"id":1467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1466,"mutability":"mutable","name":"_stakeIndex","nameLocation":"4221:11:7","nodeType":"VariableDeclaration","scope":1636,"src":"4213:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1465,"name":"uint256","nodeType":"ElementaryTypeName","src":"4213:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4212:21:7"},"returnParameters":{"id":1470,"nodeType":"ParameterList","parameters":[],"src":"4256:0:7"},"scope":1815,"src":"4192:1493:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1674,"nodeType":"Block","src":"5748:267:7","statements":[{"assignments":[1642],"declarations":[{"constant":false,"id":1642,"mutability":"mutable","name":"amount","nameLocation":"5767:6:7","nodeType":"VariableDeclaration","scope":1674,"src":"5759:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1641,"name":"uint256","nodeType":"ElementaryTypeName","src":"5759:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1648,"initialValue":{"expression":{"baseExpression":{"id":1643,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"5776:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1646,"indexExpression":{"expression":{"id":1644,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5782:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5786:6:7","memberName":"sender","nodeType":"MemberAccess","src":"5782:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5776:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5794:20:7","memberName":"referralBonusBalance","nodeType":"MemberAccess","referencedDeclaration":1040,"src":"5776:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5759:55:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1650,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"5833:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5842:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5833:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f20626f6e757320746f207769746864726177","id":1653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5845:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4","typeString":"literal_string \"No bonus to withdraw\""},"value":"No bonus to withdraw"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4","typeString":"literal_string \"No bonus to withdraw\""}],"id":1649,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5825:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5825:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1655,"nodeType":"ExpressionStatement","src":"5825:43:7"},{"expression":{"id":1662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1656,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"5889:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1659,"indexExpression":{"expression":{"id":1657,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5895:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5899:6:7","memberName":"sender","nodeType":"MemberAccess","src":"5895:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5889:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"id":1660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5907:20:7","memberName":"referralBonusBalance","nodeType":"MemberAccess","referencedDeclaration":1040,"src":"5889:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5930:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5889:42:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1663,"nodeType":"ExpressionStatement","src":"5889:42:7"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":1667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5968:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5972:6:7","memberName":"sender","nodeType":"MemberAccess","src":"5968:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1669,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"5980:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1665,"name":"kdnToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1014,"src":"5950:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"id":1666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5959:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":844,"src":"5950:17:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5950:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206661696c6564","id":1671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5989:17:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""},"value":"Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""}],"id":1664,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5942:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5942:65:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1673,"nodeType":"ExpressionStatement","src":"5942:65:7"}]},"functionSelector":"91ca7f3c","id":1675,"implemented":true,"kind":"function","modifiers":[{"id":1639,"kind":"modifierInvocation","modifierName":{"id":1638,"name":"nonReentrant","nameLocations":["5735:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":966,"src":"5735:12:7"},"nodeType":"ModifierInvocation","src":"5735:12:7"}],"name":"withdrawReferralBonus","nameLocation":"5702:21:7","nodeType":"FunctionDefinition","parameters":{"id":1637,"nodeType":"ParameterList","parameters":[],"src":"5723:2:7"},"returnParameters":{"id":1640,"nodeType":"ParameterList","parameters":[],"src":"5748:0:7"},"scope":1815,"src":"5693:322:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1813,"nodeType":"Block","src":"6074:1023:7","statements":[{"assignments":[1682],"declarations":[{"constant":false,"id":1682,"mutability":"mutable","name":"user","nameLocation":"6098:4:7","nodeType":"VariableDeclaration","scope":1813,"src":"6085:17:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User"},"typeName":{"id":1681,"nodeType":"UserDefinedTypeName","pathNode":{"id":1680,"name":"User","nameLocations":["6085:4:7"],"nodeType":"IdentifierPath","referencedDeclaration":1051,"src":"6085:4:7"},"referencedDeclaration":1051,"src":"6085:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User"}},"visibility":"internal"}],"id":1687,"initialValue":{"baseExpression":{"id":1683,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"6105:5:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$1051_storage_$","typeString":"mapping(address => struct KDNStaking.User storage ref)"}},"id":1686,"indexExpression":{"expression":{"id":1684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6111:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6115:6:7","memberName":"sender","nodeType":"MemberAccess","src":"6111:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6105:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage","typeString":"struct KDNStaking.User storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6085:37:7"},{"assignments":[1689],"declarations":[{"constant":false,"id":1689,"mutability":"mutable","name":"turnover","nameLocation":"6141:8:7","nodeType":"VariableDeclaration","scope":1813,"src":"6133:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1688,"name":"uint256","nodeType":"ElementaryTypeName","src":"6133:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1692,"initialValue":{"expression":{"id":1690,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1682,"src":"6152:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User storage pointer"}},"id":1691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6157:13:7","memberName":"groupTurnover","nodeType":"MemberAccess","referencedDeclaration":1044,"src":"6152:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6133:37:7"},{"assignments":[1694],"declarations":[{"constant":false,"id":1694,"mutability":"mutable","name":"currentLevel","nameLocation":"6189:12:7","nodeType":"VariableDeclaration","scope":1813,"src":"6181:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1693,"name":"uint256","nodeType":"ElementaryTypeName","src":"6181:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1697,"initialValue":{"expression":{"id":1695,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1682,"src":"6204:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User storage pointer"}},"id":1696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6209:19:7","memberName":"currentManagerLevel","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"6204:24:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6181:47:7"},{"assignments":[1699],"declarations":[{"constant":false,"id":1699,"mutability":"mutable","name":"bonusPercentage","nameLocation":"6247:15:7","nodeType":"VariableDeclaration","scope":1813,"src":"6239:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1698,"name":"uint256","nodeType":"ElementaryTypeName","src":"6239:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1701,"initialValue":{"hexValue":"30","id":1700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6265:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6239:27:7"},{"assignments":[1703],"declarations":[{"constant":false,"id":1703,"mutability":"mutable","name":"nextLevel","nameLocation":"6285:9:7","nodeType":"VariableDeclaration","scope":1813,"src":"6277:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1702,"name":"uint256","nodeType":"ElementaryTypeName","src":"6277:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1707,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1704,"name":"currentLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1694,"src":"6297:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6312:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6297:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6277:36:7"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1708,"name":"nextLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"6330:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":1709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6343:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6330:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1711,"name":"turnover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"6348:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"id":1716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31303030","id":1712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6360:4:7","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6367:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6371:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"6367:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"6360:13:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}},"src":"6348:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6330:43:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1724,"name":"nextLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"6431:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":1725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6444:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6431:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1727,"name":"turnover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"6449:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_3000000000000000000000_by_1","typeString":"int_const 3000000000000000000000"},"id":1732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33303030","id":1728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6461:4:7","typeDescriptions":{"typeIdentifier":"t_rational_3000_by_1","typeString":"int_const 3000"},"value":"3000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6468:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6472:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"6468:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"6461:13:7","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000000000_by_1","typeString":"int_const 3000000000000000000000"}},"src":"6449:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6431:43:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1740,"name":"nextLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"6532:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":1741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6545:1:7","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"6532:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1743,"name":"turnover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"6550:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_5000000000000000000000_by_1","typeString":"int_const 5000000000000000000000"},"id":1748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"35303030","id":1744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6562:4:7","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6569:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6573:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"6569:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"6562:13:7","typeDescriptions":{"typeIdentifier":"t_rational_5000000000000000000000_by_1","typeString":"int_const 5000000000000000000000"}},"src":"6550:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6532:43:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"nextLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"6633:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":1757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6646:1:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"6633:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1759,"name":"turnover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"6651:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000_by_1","typeString":"int_const 10000000000000000000000"},"id":1764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130303030","id":1760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6663:5:7","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":1763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6671:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":1762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6675:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"6671:6:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"6663:14:7","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000_by_1","typeString":"int_const 10000000000000000000000"}},"src":"6651:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6633:44:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1776,"nodeType":"Block","src":"6732:80:7","statements":[{"expression":{"arguments":[{"hexValue":"546172676574206e6f742072656163686564206f72206c6576656c20616c726561647920636c61696d6564","id":1773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6754:45:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354","typeString":"literal_string \"Target not reached or level already claimed\""},"value":"Target not reached or level already claimed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354","typeString":"literal_string \"Target not reached or level already claimed\""}],"id":1772,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6747:6:7","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6747:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1775,"nodeType":"ExpressionStatement","src":"6747:53:7"}]},"id":1777,"nodeType":"IfStatement","src":"6629:183:7","trueBody":{"id":1771,"nodeType":"Block","src":"6679:47:7","statements":[{"expression":{"id":1769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1767,"name":"bonusPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"6694:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":1768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6712:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"6694:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1770,"nodeType":"ExpressionStatement","src":"6694:20:7"}]}},"id":1778,"nodeType":"IfStatement","src":"6528:284:7","trueBody":{"id":1755,"nodeType":"Block","src":"6577:46:7","statements":[{"expression":{"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1751,"name":"bonusPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"6592:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"37","id":1752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6610:1:7","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"6592:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1754,"nodeType":"ExpressionStatement","src":"6592:19:7"}]}},"id":1779,"nodeType":"IfStatement","src":"6427:385:7","trueBody":{"id":1739,"nodeType":"Block","src":"6476:46:7","statements":[{"expression":{"id":1737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1735,"name":"bonusPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"6491:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"35","id":1736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6509:1:7","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"6491:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1738,"nodeType":"ExpressionStatement","src":"6491:19:7"}]}},"id":1780,"nodeType":"IfStatement","src":"6326:486:7","trueBody":{"id":1723,"nodeType":"Block","src":"6375:46:7","statements":[{"expression":{"id":1721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1719,"name":"bonusPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"6390:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"33","id":1720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6408:1:7","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"6390:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1722,"nodeType":"ExpressionStatement","src":"6390:19:7"}]}},{"assignments":[1782],"declarations":[{"constant":false,"id":1782,"mutability":"mutable","name":"bonusAmount","nameLocation":"6832:11:7","nodeType":"VariableDeclaration","scope":1813,"src":"6824:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1781,"name":"uint256","nodeType":"ElementaryTypeName","src":"6824:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1789,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1783,"name":"turnover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"6847:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1784,"name":"bonusPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"6858:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6847:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1786,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6846:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":1787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6877:3:7","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"6846:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6824:56:7"},{"expression":{"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1790,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1682,"src":"6891:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_User_$1051_storage_ptr","typeString":"struct KDNStaking.User storage pointer"}},"id":1792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6896:19:7","memberName":"currentManagerLevel","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"6891:24:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1793,"name":"nextLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"6918:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6891:36:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1795,"nodeType":"ExpressionStatement","src":"6891:36:7"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":1799,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6974:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6978:6:7","memberName":"sender","nodeType":"MemberAccess","src":"6974:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1801,"name":"bonusAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"6986:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1797,"name":"kdnToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1014,"src":"6956:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$877","typeString":"contract IERC20"}},"id":1798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6965:8:7","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":844,"src":"6956:17:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6956:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206661696c6564","id":1803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7000:17:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""},"value":"Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""}],"id":1796,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6948:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6948:70:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1805,"nodeType":"ExpressionStatement","src":"6948:70:7"},{"eventCall":{"arguments":[{"expression":{"id":1807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7054:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7058:6:7","memberName":"sender","nodeType":"MemberAccess","src":"7054:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1809,"name":"bonusAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"7066:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1810,"name":"nextLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"7079:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1806,"name":"ManagerBonusClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"7034:19:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":1811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7034:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1812,"nodeType":"EmitStatement","src":"7029:60:7"}]},"functionSelector":"cad4ea19","id":1814,"implemented":true,"kind":"function","modifiers":[{"id":1678,"kind":"modifierInvocation","modifierName":{"id":1677,"name":"nonReentrant","nameLocations":["6061:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":966,"src":"6061:12:7"},"nodeType":"ModifierInvocation","src":"6061:12:7"}],"name":"claimManagerBonus","nameLocation":"6032:17:7","nodeType":"FunctionDefinition","parameters":{"id":1676,"nodeType":"ParameterList","parameters":[],"src":"6049:2:7"},"returnParameters":{"id":1679,"nodeType":"ParameterList","parameters":[],"src":"6074:0:7"},"scope":1815,"src":"6023:1074:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1816,"src":"236:6864:7","usedErrors":[13,18,947],"usedEvents":[24,1077,1083,1093,1101]}],"src":"33:7069:7"},"id":7},"contracts/KDNToken.sol":{"ast":{"absolutePath":"contracts/KDNToken.sol","exportedSymbols":{"Context":[933],"ERC20":[799],"IERC20":[877],"IERC20Errors":[189],"IERC20Metadata":[903],"KDNToken":[1862],"Ownable":[147]},"id":1863,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1817,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:8"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":1818,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1863,"sourceUnit":800,"src":"61:55:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":1819,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1863,"sourceUnit":148,"src":"118:52:8","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1820,"name":"ERC20","nameLocations":["195:5:8"],"nodeType":"IdentifierPath","referencedDeclaration":799,"src":"195:5:8"},"id":1821,"nodeType":"InheritanceSpecifier","src":"195:5:8"},{"baseName":{"id":1822,"name":"Ownable","nameLocations":["202:7:8"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"202:7:8"},"id":1823,"nodeType":"InheritanceSpecifier","src":"202:7:8"}],"canonicalName":"KDNToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":1862,"linearizedBaseContracts":[1862,147,799,189,903,877,933],"name":"KDNToken","nameLocation":"183:8:8","nodeType":"ContractDefinition","nodes":[{"body":{"id":1845,"nodeType":"Block","src":"278:62:8","statements":[{"expression":{"arguments":[{"expression":{"id":1835,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"295:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"299:6:8","memberName":"sender","nodeType":"MemberAccess","src":"295:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31303030303030","id":1837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"307:7:8","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1000000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":1838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1839,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"321:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"321:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"317:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"307:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1834,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":639,"src":"289:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"289:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1844,"nodeType":"ExpressionStatement","src":"289:43:8"}]},"id":1846,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4b555a4144455349474e","id":1826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"237:12:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_badad843a733d28ff57d3fee173ee5576dc907148de8d9fe486133c4ec74350c","typeString":"literal_string \"KUZADESIGN\""},"value":"KUZADESIGN"},{"hexValue":"4b444e","id":1827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"251:5:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_978eef6e2cbcd912de31a27abc9552b10bfe6178bb5b286aa100d84146ce7493","typeString":"literal_string \"KDN\""},"value":"KDN"}],"id":1828,"kind":"baseConstructorSpecifier","modifierName":{"id":1825,"name":"ERC20","nameLocations":["231:5:8"],"nodeType":"IdentifierPath","referencedDeclaration":799,"src":"231:5:8"},"nodeType":"ModifierInvocation","src":"231:26:8"},{"arguments":[{"expression":{"id":1830,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"266:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"270:6:8","memberName":"sender","nodeType":"MemberAccess","src":"266:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1832,"kind":"baseConstructorSpecifier","modifierName":{"id":1829,"name":"Ownable","nameLocations":["258:7:8"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"258:7:8"},"nodeType":"ModifierInvocation","src":"258:19:8"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1824,"nodeType":"ParameterList","parameters":[],"src":"228:2:8"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[],"src":"278:0:8"},"scope":1862,"src":"217:123:8","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":1860,"nodeType":"Block","src":"407:36:8","statements":[{"expression":{"arguments":[{"id":1856,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"424:2:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1857,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"428:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1855,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":639,"src":"418:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"418:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1859,"nodeType":"ExpressionStatement","src":"418:17:8"}]},"functionSelector":"40c10f19","id":1861,"implemented":true,"kind":"function","modifiers":[{"id":1853,"kind":"modifierInvocation","modifierName":{"id":1852,"name":"onlyOwner","nameLocations":["397:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"397:9:8"},"nodeType":"ModifierInvocation","src":"397:9:8"}],"name":"mint","nameLocation":"357:4:8","nodeType":"FunctionDefinition","parameters":{"id":1851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"to","nameLocation":"370:2:8","nodeType":"VariableDeclaration","scope":1861,"src":"362:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1847,"name":"address","nodeType":"ElementaryTypeName","src":"362:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"amount","nameLocation":"382:6:8","nodeType":"VariableDeclaration","scope":1861,"src":"374:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1849,"name":"uint256","nodeType":"ElementaryTypeName","src":"374:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"361:28:8"},"returnParameters":{"id":1854,"nodeType":"ParameterList","parameters":[],"src":"407:0:8"},"scope":1862,"src":"348:95:8","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":1863,"src":"174:272:8","usedErrors":[13,18,159,164,169,178,183,188],"usedEvents":[24,811,820]}],"src":"33:415:8"},"id":8}},"contracts":{"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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. The initial owner is set to the address provided by the deployer. 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.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by 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. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling 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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"IERC1155Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]}},\"version\":1}"},"IERC20Errors":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]}},\"version\":1}"},"IERC721Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"account","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.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"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\":\"account\",\"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\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"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\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. Both values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x86b7b71a6aedefdad89b607378eeab1dcc5389b9ea7d17346d08af01d7190994\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dc2db8d94a21eac8efe03adf574c419b08536409b416057a2b5b95cb772c43c\",\"dweb:/ipfs/QmZfqJCKVU1ScuX2A7s8WZdQEaikwJbDH5JBrBdKTUT4Gu\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"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":"value","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":"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","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\":\"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\":\"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\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` 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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"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":"account","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.20+commit.a1b79de6\"},\"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\":\"account\",\"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\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` 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/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]}},\"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.20+commit.a1b79de6\"},\"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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at, consider using {ReentrancyGuardTransient} instead. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]}},\"version\":1}"}},"contracts/KDNStaking.sol":{"KDNStaking":{"abi":[{"inputs":[{"internalType":"address","name":"_kdnToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"level","type":"uint256"}],"name":"ManagerBonusClaimed","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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ProfitClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"upline","type":"address"},{"indexed":true,"internalType":"address","name":"downline","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"level","type":"uint256"}],"name":"ReferralBonusPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"packageIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"inputs":[],"name":"claimManagerBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stakeIndex","type":"uint256"}],"name":"claimProfit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kdnToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"packages","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"totalProfitPercentage","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"referralPercentages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_upline","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_packageIndex","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"address","name":"upline","type":"address"},{"internalType":"uint256","name":"referralBonusBalance","type":"uint256"},{"internalType":"uint256","name":"managerBonusBalance","type":"uint256"},{"internalType":"uint256","name":"groupTurnover","type":"uint256"},{"internalType":"uint256","name":"currentManagerLevel","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawReferralBonus","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_1215":{"entryPoint":null,"id":1215,"parameterSlots":1,"returnSlots":0},"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_955":{"entryPoint":null,"id":955,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":1139,"id":146,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":1536,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":1559,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1609,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1626,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":1490,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1458,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1453,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1510,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1551:9","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:9","statements":[{"nodeType":"YulAssignment","src":"57:19:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:9","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:9"},"nodeType":"YulFunctionCall","src":"67:9:9"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:9"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:9","type":""}],"src":"7:75:9"},{"body":{"nodeType":"YulBlock","src":"177:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:9"},"nodeType":"YulFunctionCall","src":"187:12:9"},"nodeType":"YulExpressionStatement","src":"187:12:9"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:9"},{"body":{"nodeType":"YulBlock","src":"300:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:9"},"nodeType":"YulFunctionCall","src":"310:12:9"},"nodeType":"YulExpressionStatement","src":"310:12:9"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:9"},{"body":{"nodeType":"YulBlock","src":"379:81:9","statements":[{"nodeType":"YulAssignment","src":"389:65:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"404:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"411:42:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"400:3:9"},"nodeType":"YulFunctionCall","src":"400:54:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:9"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:9","type":""}],"src":"334:126:9"},{"body":{"nodeType":"YulBlock","src":"511:51:9","statements":[{"nodeType":"YulAssignment","src":"521:35:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"550:5:9"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"532:17:9"},"nodeType":"YulFunctionCall","src":"532:24:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"521:7:9"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"493:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"503:7:9","type":""}],"src":"466:96:9"},{"body":{"nodeType":"YulBlock","src":"611:79:9","statements":[{"body":{"nodeType":"YulBlock","src":"668:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"677:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"680:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"670:6:9"},"nodeType":"YulFunctionCall","src":"670:12:9"},"nodeType":"YulExpressionStatement","src":"670:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"634:5:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"659:5:9"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"641:17:9"},"nodeType":"YulFunctionCall","src":"641:24:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"631:2:9"},"nodeType":"YulFunctionCall","src":"631:35:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"624:6:9"},"nodeType":"YulFunctionCall","src":"624:43:9"},"nodeType":"YulIf","src":"621:63:9"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"604:5:9","type":""}],"src":"568:122:9"},{"body":{"nodeType":"YulBlock","src":"759:80:9","statements":[{"nodeType":"YulAssignment","src":"769:22:9","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"784:6:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"778:5:9"},"nodeType":"YulFunctionCall","src":"778:13:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"769:5:9"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"827:5:9"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"800:26:9"},"nodeType":"YulFunctionCall","src":"800:33:9"},"nodeType":"YulExpressionStatement","src":"800:33:9"}]},"name":"abi_decode_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"737:6:9","type":""},{"name":"end","nodeType":"YulTypedName","src":"745:3:9","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"753:5:9","type":""}],"src":"696:143:9"},{"body":{"nodeType":"YulBlock","src":"922:274:9","statements":[{"body":{"nodeType":"YulBlock","src":"968:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"970:77:9"},"nodeType":"YulFunctionCall","src":"970:79:9"},"nodeType":"YulExpressionStatement","src":"970:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"943:7:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"952:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"939:3:9"},"nodeType":"YulFunctionCall","src":"939:23:9"},{"kind":"number","nodeType":"YulLiteral","src":"964:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"935:3:9"},"nodeType":"YulFunctionCall","src":"935:32:9"},"nodeType":"YulIf","src":"932:119:9"},{"nodeType":"YulBlock","src":"1061:128:9","statements":[{"nodeType":"YulVariableDeclaration","src":"1076:15:9","value":{"kind":"number","nodeType":"YulLiteral","src":"1090:1:9","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1080:6:9","type":""}]},{"nodeType":"YulAssignment","src":"1105:74:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"1162:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1147:3:9"},"nodeType":"YulFunctionCall","src":"1147:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1171:7:9"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nodeType":"YulIdentifier","src":"1115:31:9"},"nodeType":"YulFunctionCall","src":"1115:64:9"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1105:6:9"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"892:9:9","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"903:7:9","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"915:6:9","type":""}],"src":"845:351:9"},{"body":{"nodeType":"YulBlock","src":"1267:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1284:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1307:5:9"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1289:17:9"},"nodeType":"YulFunctionCall","src":"1289:24:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1277:6:9"},"nodeType":"YulFunctionCall","src":"1277:37:9"},"nodeType":"YulExpressionStatement","src":"1277:37:9"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1255:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1262:3:9","type":""}],"src":"1202:118:9"},{"body":{"nodeType":"YulBlock","src":"1424:124:9","statements":[{"nodeType":"YulAssignment","src":"1434:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1446:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"1457:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1442:3:9"},"nodeType":"YulFunctionCall","src":"1442:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1434:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1514:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1527:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"1538:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1523:3:9"},"nodeType":"YulFunctionCall","src":"1523:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"1470:43:9"},"nodeType":"YulFunctionCall","src":"1470:71:9"},"nodeType":"YulExpressionStatement","src":"1470:71:9"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1396:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1408:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1419:4:9","type":""}],"src":"1326:222:9"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040518060a00160405280600860ff168152602001600560ff168152602001600360ff168152602001600260ff168152602001600160ff1681525060059060056200005192919062000537565b503480156200005f57600080fd5b506040516200285c3803806200285c833981810160405281019062000085919062000617565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000fb5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000f291906200065a565b60405180910390fd5b6200010c816200047360201b60201c565b506001808190555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036040518060600160405280678ac7230489e80000815260200160788152602001600a81525090806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000015560208201518160010155604082015181600201555050600360405180606001604052806802b5e3af16b18800008152602001606e8152602001600f815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000155602082015181600101556040820151816002015550506003604051806060016040528068056bc75e2d6310000081526020016064815260200160148152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020155505060036040518060600160405280681b1ae4d6e2ef50000081526020016064815260200160148152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020155505060036040518060600160405280683635c9adc5dea000008152602001605a81526020016014815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000155602082015181600101556040820151816002015550506003604051806060016040528068a2a15d09519be000008152602001605081526020016019815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000155602082015181600101556040820151816002015550506003604051806060016040528069010f0cf064dd592000008152602001604681526020016023815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000155602082015181600101556040820151816002015550505062000677565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280548282559060005260206000209081019282156200057b579160200282015b828111156200057a578251829060ff1690559160200191906001019062000558565b5b5090506200058a91906200058e565b5090565b5b80821115620005a95760008160009055506001016200058f565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005df82620005b2565b9050919050565b620005f181620005d2565b8114620005fd57600080fd5b50565b6000815190506200061181620005e6565b92915050565b60006020828403121562000630576200062f620005ad565b5b6000620006408482850162000600565b91505092915050565b6200065481620005d2565b82525050565b600060208201905062000671600083018462000649565b92915050565b6121d580620006876000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b662abf511610071578063b662abf514610157578063c216212a14610187578063cad4ea19146101b9578063d22dee48146101c3578063f2fde38b146101df578063f6392595146101fb576100b4565b80634420e486146100b9578063715018a6146100d55780638da5cb5b146100df57806391ca7f3c146100fd578063a694fc3a14610107578063a87430ba14610123575b600080fd5b6100d360048036038101906100ce919061183e565b610219565b005b6100dd6104a1565b005b6100e76104b5565b6040516100f4919061187a565b60405180910390f35b6101056104de565b005b610121600480360381019061011c91906118cb565b6106a2565b005b61013d6004803603810190610138919061183e565b6109ca565b60405161014e959493929190611907565b60405180910390f35b610171600480360381019061016c91906118cb565b610a20565b60405161017e919061195a565b60405180910390f35b6101a1600480360381019061019c91906118cb565b610a44565b6040516101b093929190611975565b60405180910390f35b6101c1610a7e565b005b6101dd60048036038101906101d891906118cb565b610d2d565b005b6101f960048036038101906101f4919061183e565b6111fc565b005b610203611282565b6040516102109190611a0b565b60405180910390f35b600073ffffffffffffffffffffffffffffffffffffffff16600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e190611a83565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034f90611aef565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005018054905011806103de57506103af6104b5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61041d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041490611b5b565b60405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6104a96112a8565b6104b3600061132f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104e66113f3565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905060008111610570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056790611bc7565b60405180910390fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610615929190611be7565b6020604051808303816000875af1158015610634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106589190611c48565b610697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068e90611cc1565b60405180910390fd5b506106a0611439565b565b6106aa6113f3565b60038054905081106106f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e890611d2d565b60405180910390fd5b60006003828154811061070757610706611d4d565b5b906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820154815250509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd333084600001516040518463ffffffff1660e01b81526004016107a393929190611d7c565b6020604051808303816000875af11580156107c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e69190611c48565b610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90611cc1565b60405180910390fd5b600060648260400151836000015161083d9190611de2565b6108479190611e53565b9050600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016040518060e001604052808581526020014281526020014281526020018460000151815260200183815260200160008152602001600115158152509080600181540180825580915050600190039060005260206000209060070201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff021916908315150217905550505061095b338360000151611442565b61096933836000015161166f565b3373ffffffffffffffffffffffffffffffffffffffff167f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee908484600001516040516109b5929190611e84565b60405180910390a250506109c7611439565b50565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154905085565b60058181548110610a3057600080fd5b906000526020600020016000915090505481565b60038181548110610a5457600080fd5b90600052602060002090600302016000915090508060000154908060010154908060020154905083565b610a866113f3565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600301549050600082600401549050600080600183610aeb9190611ead565b9050600181148015610b065750683635c9adc5dea000008410155b15610b145760039150610bc9565b600281148015610b2d575068a2a15d09519be000008410155b15610b3b5760059150610bc8565b600381148015610b55575069010f0cf064dd592000008410155b15610b635760079150610bc7565b600481148015610b7d575069021e19e0c9bab24000008410155b15610b8b57600a9150610bc6565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90611f53565b60405180910390fd5b5b5b5b600060648386610bd99190611de2565b610be39190611e53565b9050818660040181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c4b929190611be7565b6020604051808303816000875af1158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e9190611c48565b610ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc490611cc1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f9d4af69323c427453609e945e4119e0a9996a515582708d8866e5609a59e49cf8284604051610d15929190611e84565b60405180910390a2505050505050610d2b611439565b565b610d356113f3565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600501805490508210610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890611fbf565b60405180910390fd5b6000816005018381548110610dd957610dd8611d4d565b5b906000526020600020906007020190508060060160009054906101000a900460ff16610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e319061202b565b60405180910390fd5b600042905060006003836000015481548110610e5957610e58611d4d565b5b9060005260206000209060030201604051806060016040529081600082015481526020016001820154815260200160028201548152505090506000836002015483610ea4919061204b565b90506000620151808360200151610ebb9190611de2565b9050808560010154610ecd9190611ead565b841115610ef957808560010154610ee49190611ead565b9350846002015484610ef6919061204b565b91505b600083602001518660040154610f0f9190611e53565b90506000620151808483610f239190611de2565b610f2d9190611e53565b905060008111610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f69906120cb565b60405180910390fd5b80876005016000828254610f869190611ead565b9250508190555042876002018190555086600401548760050154106110bb5760008760060160006101000a81548160ff0219169083151502179055506000818860030154610fd49190611ead565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611033929190611be7565b6020604051808303816000875af1158015611052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110769190611c48565b6110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac90612137565b60405180910390fd5b5061119b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611118929190611be7565b6020604051808303816000875af1158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b9190611c48565b61119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190611cc1565b60405180910390fd5b5b3373ffffffffffffffffffffffffffffffffffffffff167f6a2cbfd0a4e37b7dace5dec7cf930020420c1aa4ca495bbf4972d9fd614ecc3b826040516111e1919061195a565b60405180910390a250505050505050506111f9611439565b50565b6112046112a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112765760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161126d919061187a565b60405180910390fd5b61127f8161132f565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112b06117d3565b73ffffffffffffffffffffffffffffffffffffffff166112ce6104b5565b73ffffffffffffffffffffffffffffffffffffffff161461132d576112f16117d3565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611324919061187a565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60026001540361142f576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b600581101561166957600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16031561166957600060646005838154811061150257611501611d4d565b5b9060005260206000200154856115189190611de2565b6115229190611e53565b905080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546115769190611ead565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb1da5bd041c3a852a00414e52da5f60612375abee4e87c90003be773e8dc5c8d836001866115da9190611ead565b6040516115e8929190611e84565b60405180910390a3600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050808061166190612157565b9150506114ac565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117ce5781600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461175d9190611ead565b92505081905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506116d7565b505050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061180b826117e0565b9050919050565b61181b81611800565b811461182657600080fd5b50565b60008135905061183881611812565b92915050565b600060208284031215611854576118536117db565b5b600061186284828501611829565b91505092915050565b61187481611800565b82525050565b600060208201905061188f600083018461186b565b92915050565b6000819050919050565b6118a881611895565b81146118b357600080fd5b50565b6000813590506118c58161189f565b92915050565b6000602082840312156118e1576118e06117db565b5b60006118ef848285016118b6565b91505092915050565b61190181611895565b82525050565b600060a08201905061191c600083018861186b565b61192960208301876118f8565b61193660408301866118f8565b61194360608301856118f8565b61195060808301846118f8565b9695505050505050565b600060208201905061196f60008301846118f8565b92915050565b600060608201905061198a60008301866118f8565b61199760208301856118f8565b6119a460408301846118f8565b949350505050565b6000819050919050565b60006119d16119cc6119c7846117e0565b6119ac565b6117e0565b9050919050565b60006119e3826119b6565b9050919050565b60006119f5826119d8565b9050919050565b611a05816119ea565b82525050565b6000602082019050611a2060008301846119fc565b92915050565b600082825260208201905092915050565b7f416c726561647920726567697374657265640000000000000000000000000000600082015250565b6000611a6d601283611a26565b9150611a7882611a37565b602082019050919050565b60006020820190508181036000830152611a9c81611a60565b9050919050565b7f43616e6e6f7420726566657220796f757273656c660000000000000000000000600082015250565b6000611ad9601583611a26565b9150611ae482611aa3565b602082019050919050565b60006020820190508181036000830152611b0881611acc565b9050919050565b7f496e76616c69642075706c696e65000000000000000000000000000000000000600082015250565b6000611b45600e83611a26565b9150611b5082611b0f565b602082019050919050565b60006020820190508181036000830152611b7481611b38565b9050919050565b7f4e6f20626f6e757320746f207769746864726177000000000000000000000000600082015250565b6000611bb1601483611a26565b9150611bbc82611b7b565b602082019050919050565b60006020820190508181036000830152611be081611ba4565b9050919050565b6000604082019050611bfc600083018561186b565b611c0960208301846118f8565b9392505050565b60008115159050919050565b611c2581611c10565b8114611c3057600080fd5b50565b600081519050611c4281611c1c565b92915050565b600060208284031215611c5e57611c5d6117db565b5b6000611c6c84828501611c33565b91505092915050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000611cab600f83611a26565b9150611cb682611c75565b602082019050919050565b60006020820190508181036000830152611cda81611c9e565b9050919050565b7f496e76616c6964207061636b6167650000000000000000000000000000000000600082015250565b6000611d17600f83611a26565b9150611d2282611ce1565b602082019050919050565b60006020820190508181036000830152611d4681611d0a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000606082019050611d91600083018661186b565b611d9e602083018561186b565b611dab60408301846118f8565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ded82611895565b9150611df883611895565b9250828202611e0681611895565b91508282048414831517611e1d57611e1c611db3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611e5e82611895565b9150611e6983611895565b925082611e7957611e78611e24565b5b828204905092915050565b6000604082019050611e9960008301856118f8565b611ea660208301846118f8565b9392505050565b6000611eb882611895565b9150611ec383611895565b9250828201905080821115611edb57611eda611db3565b5b92915050565b7f546172676574206e6f742072656163686564206f72206c6576656c20616c726560008201527f61647920636c61696d6564000000000000000000000000000000000000000000602082015250565b6000611f3d602b83611a26565b9150611f4882611ee1565b604082019050919050565b60006020820190508181036000830152611f6c81611f30565b9050919050565b7f496e76616c6964207374616b6520696e64657800000000000000000000000000600082015250565b6000611fa9601383611a26565b9150611fb482611f73565b602082019050919050565b60006020820190508181036000830152611fd881611f9c565b9050919050565b7f5374616b65206e6f742061637469766500000000000000000000000000000000600082015250565b6000612015601083611a26565b915061202082611fdf565b602082019050919050565b6000602082019050818103600083015261204481612008565b9050919050565b600061205682611895565b915061206183611895565b925082820390508181111561207957612078611db3565b5b92915050565b7f4e6f2070726f66697420746f20636c61696d2079657400000000000000000000600082015250565b60006120b5601683611a26565b91506120c08261207f565b602082019050919050565b600060208201905081810360008301526120e4816120a8565b9050919050565b7f46696e616c207472616e73666572206661696c65640000000000000000000000600082015250565b6000612121601583611a26565b915061212c826120eb565b602082019050919050565b6000602082019050818103600083015261215081612114565b9050919050565b600061216282611895565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361219457612193611db3565b5b60018201905091905056fea26469706673582212204e31c5cc9d3fe1a2a10d909681576a781172bab970ff37a74bdef6217875771664736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xFF AND DUP2 MSTORE POP PUSH1 0x5 SWAP1 PUSH1 0x5 PUSH3 0x51 SWAP3 SWAP2 SWAP1 PUSH3 0x537 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH3 0x5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x285C CODESIZE SUB DUP1 PUSH3 0x285C DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x85 SWAP2 SWAP1 PUSH3 0x617 JUMP JUMPDEST CALLER PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0xFB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xF2 SWAP2 SWAP1 PUSH3 0x65A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x10C DUP2 PUSH3 0x473 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH8 0x8AC7230489E80000 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x78 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0xA DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP PUSH1 0x3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH9 0x2B5E3AF16B1880000 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6E DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0xF DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP PUSH1 0x3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH9 0x56BC75E2D63100000 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x64 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x14 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP PUSH1 0x3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH9 0x1B1AE4D6E2EF500000 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x64 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x14 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP PUSH1 0x3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH9 0x3635C9ADC5DEA00000 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5A DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x14 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP PUSH1 0x3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH9 0xA2A15D09519BE00000 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x50 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x19 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP PUSH1 0x3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH10 0x10F0CF064DD59200000 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x46 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x23 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP POP PUSH3 0x677 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x57B JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x57A JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH1 0xFF AND SWAP1 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x558 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x58A SWAP2 SWAP1 PUSH3 0x58E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x5A9 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x58F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5DF DUP3 PUSH3 0x5B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x5F1 DUP2 PUSH3 0x5D2 JUMP JUMPDEST DUP2 EQ PUSH3 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x611 DUP2 PUSH3 0x5E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x630 JUMPI PUSH3 0x62F PUSH3 0x5AD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x640 DUP5 DUP3 DUP6 ADD PUSH3 0x600 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x654 DUP2 PUSH3 0x5D2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x671 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x649 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x21D5 DUP1 PUSH3 0x687 PUSH1 0x0 CODECOPY 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 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB662ABF5 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xB662ABF5 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xC216212A EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xCAD4EA19 EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0xD22DEE48 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xF6392595 EQ PUSH2 0x1FB JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x4420E486 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xDF JUMPI DUP1 PUSH4 0x91CA7F3C EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xA694FC3A EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0xA87430BA EQ PUSH2 0x123 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x183E JUMP JUMPDEST PUSH2 0x219 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDD PUSH2 0x4A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE7 PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0x187A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x4DE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x121 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11C SWAP2 SWAP1 PUSH2 0x18CB JUMP JUMPDEST PUSH2 0x6A2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x183E JUMP JUMPDEST PUSH2 0x9CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1907 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x171 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16C SWAP2 SWAP1 PUSH2 0x18CB JUMP JUMPDEST PUSH2 0xA20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17E SWAP2 SWAP1 PUSH2 0x195A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19C SWAP2 SWAP1 PUSH2 0x18CB JUMP JUMPDEST PUSH2 0xA44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C1 PUSH2 0xA7E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D8 SWAP2 SWAP1 PUSH2 0x18CB JUMP JUMPDEST PUSH2 0xD2D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1F9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x183E JUMP JUMPDEST PUSH2 0x11FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x203 PUSH2 0x1282 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x210 SWAP2 SWAP1 PUSH2 0x1A0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP1 PUSH2 0x1A83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x358 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34F SWAP1 PUSH2 0x1AEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD DUP1 SLOAD SWAP1 POP GT DUP1 PUSH2 0x3DE JUMPI POP PUSH2 0x3AF PUSH2 0x4B5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x41D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x414 SWAP1 PUSH2 0x1B5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x4A9 PUSH2 0x12A8 JUMP JUMPDEST PUSH2 0x4B3 PUSH1 0x0 PUSH2 0x132F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4E6 PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x1BC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x615 SWAP3 SWAP2 SWAP1 PUSH2 0x1BE7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x634 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 0x658 SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0x697 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x68E SWAP1 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0x6A0 PUSH2 0x1439 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x6AA PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x6F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6E8 SWAP1 PUSH2 0x1D2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x1D4D JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7C2 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 0x7E6 SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0x825 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81C SWAP1 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x64 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x83D SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP POP PUSH2 0x95B CALLER DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x1442 JUMP JUMPDEST PUSH2 0x969 CALLER DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x166F JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x1449C6DD7851ABC30ABF37F57715F492010519147CC2652FBC38202C18A6EE90 DUP5 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x9B5 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH2 0x9C7 PUSH2 0x1439 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0xA86 PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x4 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 DUP4 PUSH2 0xAEB SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 EQ DUP1 ISZERO PUSH2 0xB06 JUMPI POP PUSH9 0x3635C9ADC5DEA00000 DUP5 LT ISZERO JUMPDEST ISZERO PUSH2 0xB14 JUMPI PUSH1 0x3 SWAP2 POP PUSH2 0xBC9 JUMP JUMPDEST PUSH1 0x2 DUP2 EQ DUP1 ISZERO PUSH2 0xB2D JUMPI POP PUSH9 0xA2A15D09519BE00000 DUP5 LT ISZERO JUMPDEST ISZERO PUSH2 0xB3B JUMPI PUSH1 0x5 SWAP2 POP PUSH2 0xBC8 JUMP JUMPDEST PUSH1 0x3 DUP2 EQ DUP1 ISZERO PUSH2 0xB55 JUMPI POP PUSH10 0x10F0CF064DD59200000 DUP5 LT ISZERO JUMPDEST ISZERO PUSH2 0xB63 JUMPI PUSH1 0x7 SWAP2 POP PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x4 DUP2 EQ DUP1 ISZERO PUSH2 0xB7D JUMPI POP PUSH10 0x21E19E0C9BAB2400000 DUP5 LT ISZERO JUMPDEST ISZERO PUSH2 0xB8B JUMPI PUSH1 0xA SWAP2 POP PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBBD SWAP1 PUSH2 0x1F53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x64 DUP4 DUP7 PUSH2 0xBD9 SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST PUSH2 0xBE3 SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP DUP2 DUP7 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4B SWAP3 SWAP2 SWAP1 PUSH2 0x1BE7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC6A 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 0xC8E SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0xCCD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC4 SWAP1 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9D4AF69323C427453609E945E4119E0A9996A515582708D8866E5609A59E49CF DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xD15 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP PUSH2 0xD2B PUSH2 0x1439 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xD35 PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x5 ADD DUP1 SLOAD SWAP1 POP DUP3 LT PUSH2 0xDC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDB8 SWAP1 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x5 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xDD9 JUMPI PUSH2 0xDD8 PUSH2 0x1D4D JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 MUL ADD SWAP1 POP DUP1 PUSH1 0x6 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xE3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE31 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP PUSH1 0x0 PUSH1 0x3 DUP4 PUSH1 0x0 ADD SLOAD DUP2 SLOAD DUP2 LT PUSH2 0xE59 JUMPI PUSH2 0xE58 PUSH2 0x1D4D JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 ADD SLOAD DUP4 PUSH2 0xEA4 SWAP2 SWAP1 PUSH2 0x204B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x15180 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xEBB SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 PUSH1 0x1 ADD SLOAD PUSH2 0xECD SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0xEF9 JUMPI DUP1 DUP6 PUSH1 0x1 ADD SLOAD PUSH2 0xEE4 SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x2 ADD SLOAD DUP5 PUSH2 0xEF6 SWAP2 SWAP1 PUSH2 0x204B JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x4 ADD SLOAD PUSH2 0xF0F SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x15180 DUP5 DUP4 PUSH2 0xF23 SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST PUSH2 0xF2D SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0xF72 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF69 SWAP1 PUSH2 0x20CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP8 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xF86 SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP TIMESTAMP DUP8 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x4 ADD SLOAD DUP8 PUSH1 0x5 ADD SLOAD LT PUSH2 0x10BB JUMPI PUSH1 0x0 DUP8 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 DUP9 PUSH1 0x3 ADD SLOAD PUSH2 0xFD4 SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1033 SWAP3 SWAP2 SWAP1 PUSH2 0x1BE7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1052 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 0x1076 SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0x10B5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10AC SWAP1 PUSH2 0x2137 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0x119B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1118 SWAP3 SWAP2 SWAP1 PUSH2 0x1BE7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1137 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 0x115B SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0x119A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1191 SWAP1 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6A2CBFD0A4E37B7DACE5DEC7CF930020420C1AA4CA495BBF4972D9FD614ECC3B DUP3 PUSH1 0x40 MLOAD PUSH2 0x11E1 SWAP2 SWAP1 PUSH2 0x195A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP PUSH2 0x11F9 PUSH2 0x1439 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1204 PUSH2 0x12A8 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1276 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x126D SWAP2 SWAP1 PUSH2 0x187A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x127F DUP2 PUSH2 0x132F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x12B0 PUSH2 0x17D3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x12CE PUSH2 0x4B5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x132D JUMPI PUSH2 0x12F1 PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1324 SWAP2 SWAP1 PUSH2 0x187A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD SUB PUSH2 0x142F JUMPI PUSH1 0x40 MLOAD PUSH32 0x3EE5AEB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x5 DUP2 LT ISZERO PUSH2 0x1669 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB ISZERO PUSH2 0x1669 JUMPI PUSH1 0x0 PUSH1 0x64 PUSH1 0x5 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1502 JUMPI PUSH2 0x1501 PUSH2 0x1D4D JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH2 0x1518 SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST PUSH2 0x1522 SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1576 SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB1DA5BD041C3A852A00414E52DA5F60612375ABEE4E87C90003BE773E8DC5C8D DUP4 PUSH1 0x1 DUP7 PUSH2 0x15DA SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E8 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 POP POP DUP1 DUP1 PUSH2 0x1661 SWAP1 PUSH2 0x2157 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x14AC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17CE JUMPI DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x175D SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x16D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180B DUP3 PUSH2 0x17E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x181B DUP2 PUSH2 0x1800 JUMP JUMPDEST DUP2 EQ PUSH2 0x1826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1838 DUP2 PUSH2 0x1812 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1854 JUMPI PUSH2 0x1853 PUSH2 0x17DB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1862 DUP5 DUP3 DUP6 ADD PUSH2 0x1829 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1874 DUP2 PUSH2 0x1800 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x188F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18A8 DUP2 PUSH2 0x1895 JUMP JUMPDEST DUP2 EQ PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18C5 DUP2 PUSH2 0x189F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18E1 JUMPI PUSH2 0x18E0 PUSH2 0x17DB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18EF DUP5 DUP3 DUP6 ADD PUSH2 0x18B6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1901 DUP2 PUSH2 0x1895 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x191C PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1929 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1936 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1943 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1950 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x196F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x198A PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1997 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x19A4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19D1 PUSH2 0x19CC PUSH2 0x19C7 DUP5 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x19AC JUMP JUMPDEST PUSH2 0x17E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19E3 DUP3 PUSH2 0x19B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19F5 DUP3 PUSH2 0x19D8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A05 DUP2 PUSH2 0x19EA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A20 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x19FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416C726561647920726567697374657265640000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A6D PUSH1 0x12 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A78 DUP3 PUSH2 0x1A37 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1A9C DUP2 PUSH2 0x1A60 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x43616E6E6F7420726566657220796F757273656C660000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AD9 PUSH1 0x15 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AE4 DUP3 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B08 DUP2 PUSH2 0x1ACC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C69642075706C696E65000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B45 PUSH1 0xE DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B50 DUP3 PUSH2 0x1B0F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B74 DUP2 PUSH2 0x1B38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F20626F6E757320746F207769746864726177000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BB1 PUSH1 0x14 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1BBC DUP3 PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1BE0 DUP2 PUSH2 0x1BA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BFC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1C09 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C25 DUP2 PUSH2 0x1C10 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C42 DUP2 PUSH2 0x1C1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C5E JUMPI PUSH2 0x1C5D PUSH2 0x17DB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C6C DUP5 DUP3 DUP6 ADD PUSH2 0x1C33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CAB PUSH1 0xF DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CB6 DUP3 PUSH2 0x1C75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1CDA DUP2 PUSH2 0x1C9E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C6964207061636B6167650000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D17 PUSH1 0xF DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D22 DUP3 PUSH2 0x1CE1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1D46 DUP2 PUSH2 0x1D0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1D91 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1D9E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1DAB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DED DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DF8 DUP4 PUSH2 0x1895 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1E06 DUP2 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1E1D JUMPI PUSH2 0x1E1C PUSH2 0x1DB3 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E5E DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E69 DUP4 PUSH2 0x1895 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1E79 JUMPI PUSH2 0x1E78 PUSH2 0x1E24 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB8 DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EC3 DUP4 PUSH2 0x1895 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EDB JUMPI PUSH2 0x1EDA PUSH2 0x1DB3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x546172676574206E6F742072656163686564206F72206C6576656C20616C7265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x61647920636C61696D6564000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F3D PUSH1 0x2B DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F48 DUP3 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F6C DUP2 PUSH2 0x1F30 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C6964207374616B6520696E64657800000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FA9 PUSH1 0x13 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1FB4 DUP3 PUSH2 0x1F73 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1FD8 DUP2 PUSH2 0x1F9C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5374616B65206E6F742061637469766500000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2015 PUSH1 0x10 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x2020 DUP3 PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2044 DUP2 PUSH2 0x2008 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2056 DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH2 0x2061 DUP4 PUSH2 0x1895 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2079 JUMPI PUSH2 0x2078 PUSH2 0x1DB3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E6F2070726F66697420746F20636C61696D2079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20B5 PUSH1 0x16 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x20C0 DUP3 PUSH2 0x207F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x20E4 DUP2 PUSH2 0x20A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x46696E616C207472616E73666572206661696C65640000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2121 PUSH1 0x15 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x212C DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2150 DUP2 PUSH2 0x2114 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2162 DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2194 JUMPI PUSH2 0x2193 PUSH2 0x1DB3 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E BALANCE 0xC5 0xCC SWAP14 EXTCODEHASH 0xE1 LOG2 LOG1 0xD SWAP1 SWAP7 DUP2 JUMPI PUSH11 0x781172BAB970FF37A74BDE 0xF6 0x21 PUSH25 0x75771664736F6C634300081400330000000000000000000000 ","sourceMap":"236:6864:7:-:0;;;1025:54;;;;;;;;1065:1;1025:54;;;;;;1068:1;1025:54;;;;;;1071:1;1025:54;;;;;;1074:1;1025:54;;;;;;1077:1;1025:54;;;;;;;;;;;;;:::i;:::-;;1429:625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1468:10;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;1857:1:6;2061:7;:21;;;;1509:9:7::1;1491:8;;:28;;;;;;;;;;;;;;;;;;1588:8;1602:29;;;;;;;;1610:11;1602:29;;;;1623:3;1602:29;;;;1628:2;1602:29;;::::0;1588:44:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:8;1670:29;;;;;;;;1678:11;1670:29;;;;1691:3;1670:29;;;;1696:2;1670:29;;::::0;1656:44:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1722:8;1736:30;;;;;;;;1744:12;1736:30;;;;1758:3;1736:30;;;;1763:2;1736:30;;::::0;1722:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1789:8;1803:30;;;;;;;;1811:12;1803:30;;;;1825:3;1803:30;;;;1830:2;1803:30;;::::0;1789:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1854:8;1868:30;;;;;;;;1876:13;1868:30;;;;1891:2;1868:30;;;;1895:2;1868:30;;::::0;1854:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1923:8;1937:30;;;;;;;;1945:13;1937:30;;;;1960:2;1937:30;;;;1964:2;1937:30;;::::0;1923:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1991:8;2005:30;;;;;;;;2013:13;2005:30;;;;2028:2;2005:30;;;;2032:2;2005:30;;::::0;1991:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1429:625:::0;236:6864;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;236:6864:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;88:117:9:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;236:6864:7:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_84":{"entryPoint":4776,"id":84,"parameterSlots":0,"returnSlots":0},"@_distributeReferralBonus_1427":{"entryPoint":5186,"id":1427,"parameterSlots":2,"returnSlots":0},"@_msgSender_915":{"entryPoint":6099,"id":915,"parameterSlots":0,"returnSlots":1},"@_nonReentrantAfter_990":{"entryPoint":5177,"id":990,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_982":{"entryPoint":5107,"id":982,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":4911,"id":146,"parameterSlots":1,"returnSlots":0},"@_updateGroupTurnover_1464":{"entryPoint":5743,"id":1464,"parameterSlots":2,"returnSlots":0},"@claimManagerBonus_1814":{"entryPoint":2686,"id":1814,"parameterSlots":0,"returnSlots":0},"@claimProfit_1636":{"entryPoint":3373,"id":1636,"parameterSlots":1,"returnSlots":0},"@kdnToken_1014":{"entryPoint":4738,"id":1014,"parameterSlots":0,"returnSlots":0},"@owner_67":{"entryPoint":1205,"id":67,"parameterSlots":0,"returnSlots":1},"@packages_1055":{"entryPoint":2628,"id":1055,"parameterSlots":0,"returnSlots":0},"@referralPercentages_1069":{"entryPoint":2592,"id":1069,"parameterSlots":0,"returnSlots":0},"@register_1267":{"entryPoint":537,"id":1267,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_98":{"entryPoint":1185,"id":98,"parameterSlots":0,"returnSlots":0},"@stake_1358":{"entryPoint":1698,"id":1358,"parameterSlots":1,"returnSlots":0},"@transferOwnership_126":{"entryPoint":4604,"id":126,"parameterSlots":1,"returnSlots":0},"@users_1060":{"entryPoint":2506,"id":1060,"parameterSlots":0,"returnSlots":0},"@withdrawReferralBonus_1675":{"entryPoint":1246,"id":1675,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":6185,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":7219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6326,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6206,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":7240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6347,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":6251,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack":{"entryPoint":6652,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8_to_t_string_memory_ptr_fromStack":{"entryPoint":6968,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070_to_t_string_memory_ptr_fromStack":{"entryPoint":8092,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51_to_t_string_memory_ptr_fromStack":{"entryPoint":6860,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack":{"entryPoint":7326,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2_to_t_string_memory_ptr_fromStack":{"entryPoint":6752,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5_to_t_string_memory_ptr_fromStack":{"entryPoint":8200,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4_to_t_string_memory_ptr_fromStack":{"entryPoint":7076,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f_to_t_string_memory_ptr_fromStack":{"entryPoint":7434,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad_to_t_string_memory_ptr_fromStack":{"entryPoint":8360,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9_to_t_string_memory_ptr_fromStack":{"entryPoint":8468,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354_to_t_string_memory_ptr_fromStack":{"entryPoint":7984,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":6392,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":6266,"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":7548,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":7143,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":6407,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20_$877__to_t_address__fromStack_reversed":{"entryPoint":6667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7003,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8127,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6895,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7361,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6787,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8235,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7111,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7469,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8395,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8503,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8019,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":6490,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7812,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":6517,"id":null,"parameterSlots":4,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":6694,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":7853,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":7763,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7650,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8267,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":6144,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":7184,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":6112,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6293,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IERC20_$877_to_t_address":{"entryPoint":6634,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":6616,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":6582,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":6572,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":8535,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":7603,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":7716,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7501,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6107,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8":{"entryPoint":6927,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070":{"entryPoint":8051,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51":{"entryPoint":6819,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51":{"entryPoint":7285,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2":{"entryPoint":6711,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5":{"entryPoint":8159,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4":{"entryPoint":7035,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f":{"entryPoint":7393,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad":{"entryPoint":8319,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9":{"entryPoint":8427,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354":{"entryPoint":7905,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6162,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":7196,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6303,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:19155:9","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:9","statements":[{"nodeType":"YulAssignment","src":"57:19:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:9","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:9"},"nodeType":"YulFunctionCall","src":"67:9:9"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:9"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:9","type":""}],"src":"7:75:9"},{"body":{"nodeType":"YulBlock","src":"177:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:9"},"nodeType":"YulFunctionCall","src":"187:12:9"},"nodeType":"YulExpressionStatement","src":"187:12:9"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:9"},{"body":{"nodeType":"YulBlock","src":"300:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:9"},"nodeType":"YulFunctionCall","src":"310:12:9"},"nodeType":"YulExpressionStatement","src":"310:12:9"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:9"},{"body":{"nodeType":"YulBlock","src":"379:81:9","statements":[{"nodeType":"YulAssignment","src":"389:65:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"404:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"411:42:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"400:3:9"},"nodeType":"YulFunctionCall","src":"400:54:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:9"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:9","type":""}],"src":"334:126:9"},{"body":{"nodeType":"YulBlock","src":"511:51:9","statements":[{"nodeType":"YulAssignment","src":"521:35:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"550:5:9"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"532:17:9"},"nodeType":"YulFunctionCall","src":"532:24:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"521:7:9"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"493:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"503:7:9","type":""}],"src":"466:96:9"},{"body":{"nodeType":"YulBlock","src":"611:79:9","statements":[{"body":{"nodeType":"YulBlock","src":"668:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"677:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"680:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"670:6:9"},"nodeType":"YulFunctionCall","src":"670:12:9"},"nodeType":"YulExpressionStatement","src":"670:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"634:5:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"659:5:9"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"641:17:9"},"nodeType":"YulFunctionCall","src":"641:24:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"631:2:9"},"nodeType":"YulFunctionCall","src":"631:35:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"624:6:9"},"nodeType":"YulFunctionCall","src":"624:43:9"},"nodeType":"YulIf","src":"621:63:9"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"604:5:9","type":""}],"src":"568:122:9"},{"body":{"nodeType":"YulBlock","src":"748:87:9","statements":[{"nodeType":"YulAssignment","src":"758:29:9","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"780:6:9"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"767:12:9"},"nodeType":"YulFunctionCall","src":"767:20:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"758:5:9"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"823:5:9"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"796:26:9"},"nodeType":"YulFunctionCall","src":"796:33:9"},"nodeType":"YulExpressionStatement","src":"796:33:9"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"726:6:9","type":""},{"name":"end","nodeType":"YulTypedName","src":"734:3:9","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"742:5:9","type":""}],"src":"696:139:9"},{"body":{"nodeType":"YulBlock","src":"907:263:9","statements":[{"body":{"nodeType":"YulBlock","src":"953:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"955:77:9"},"nodeType":"YulFunctionCall","src":"955:79:9"},"nodeType":"YulExpressionStatement","src":"955:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"928:7:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"937:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"924:3:9"},"nodeType":"YulFunctionCall","src":"924:23:9"},{"kind":"number","nodeType":"YulLiteral","src":"949:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"920:3:9"},"nodeType":"YulFunctionCall","src":"920:32:9"},"nodeType":"YulIf","src":"917:119:9"},{"nodeType":"YulBlock","src":"1046:117:9","statements":[{"nodeType":"YulVariableDeclaration","src":"1061:15:9","value":{"kind":"number","nodeType":"YulLiteral","src":"1075:1:9","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1065:6:9","type":""}]},{"nodeType":"YulAssignment","src":"1090:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1125:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"1136:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1121:3:9"},"nodeType":"YulFunctionCall","src":"1121:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1145:7:9"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1100:20:9"},"nodeType":"YulFunctionCall","src":"1100:53:9"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1090:6:9"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"877:9:9","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"888:7:9","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"900:6:9","type":""}],"src":"841:329:9"},{"body":{"nodeType":"YulBlock","src":"1241:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1258:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1281:5:9"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1263:17:9"},"nodeType":"YulFunctionCall","src":"1263:24:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1251:6:9"},"nodeType":"YulFunctionCall","src":"1251:37:9"},"nodeType":"YulExpressionStatement","src":"1251:37:9"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1229:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1236:3:9","type":""}],"src":"1176:118:9"},{"body":{"nodeType":"YulBlock","src":"1398:124:9","statements":[{"nodeType":"YulAssignment","src":"1408:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1420:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"1431:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1416:3:9"},"nodeType":"YulFunctionCall","src":"1416:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1408:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1488:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1501:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"1512:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1497:3:9"},"nodeType":"YulFunctionCall","src":"1497:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"1444:43:9"},"nodeType":"YulFunctionCall","src":"1444:71:9"},"nodeType":"YulExpressionStatement","src":"1444:71:9"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1370:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1382:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1393:4:9","type":""}],"src":"1300:222:9"},{"body":{"nodeType":"YulBlock","src":"1573:32:9","statements":[{"nodeType":"YulAssignment","src":"1583:16:9","value":{"name":"value","nodeType":"YulIdentifier","src":"1594:5:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1583:7:9"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1555:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1565:7:9","type":""}],"src":"1528:77:9"},{"body":{"nodeType":"YulBlock","src":"1654:79:9","statements":[{"body":{"nodeType":"YulBlock","src":"1711:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1720:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1723:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1713:6:9"},"nodeType":"YulFunctionCall","src":"1713:12:9"},"nodeType":"YulExpressionStatement","src":"1713:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1677:5:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1702:5:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1684:17:9"},"nodeType":"YulFunctionCall","src":"1684:24:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1674:2:9"},"nodeType":"YulFunctionCall","src":"1674:35:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1667:6:9"},"nodeType":"YulFunctionCall","src":"1667:43:9"},"nodeType":"YulIf","src":"1664:63:9"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1647:5:9","type":""}],"src":"1611:122:9"},{"body":{"nodeType":"YulBlock","src":"1791:87:9","statements":[{"nodeType":"YulAssignment","src":"1801:29:9","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1823:6:9"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1810:12:9"},"nodeType":"YulFunctionCall","src":"1810:20:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1801:5:9"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1866:5:9"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"1839:26:9"},"nodeType":"YulFunctionCall","src":"1839:33:9"},"nodeType":"YulExpressionStatement","src":"1839:33:9"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1769:6:9","type":""},{"name":"end","nodeType":"YulTypedName","src":"1777:3:9","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1785:5:9","type":""}],"src":"1739:139:9"},{"body":{"nodeType":"YulBlock","src":"1950:263:9","statements":[{"body":{"nodeType":"YulBlock","src":"1996:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"1998:77:9"},"nodeType":"YulFunctionCall","src":"1998:79:9"},"nodeType":"YulExpressionStatement","src":"1998:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1971:7:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"1980:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1967:3:9"},"nodeType":"YulFunctionCall","src":"1967:23:9"},{"kind":"number","nodeType":"YulLiteral","src":"1992:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1963:3:9"},"nodeType":"YulFunctionCall","src":"1963:32:9"},"nodeType":"YulIf","src":"1960:119:9"},{"nodeType":"YulBlock","src":"2089:117:9","statements":[{"nodeType":"YulVariableDeclaration","src":"2104:15:9","value":{"kind":"number","nodeType":"YulLiteral","src":"2118:1:9","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2108:6:9","type":""}]},{"nodeType":"YulAssignment","src":"2133:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2168:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"2179:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2164:3:9"},"nodeType":"YulFunctionCall","src":"2164:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2188:7:9"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"2143:20:9"},"nodeType":"YulFunctionCall","src":"2143:53:9"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2133:6:9"}]}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1920:9:9","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1931:7:9","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1943:6:9","type":""}],"src":"1884:329:9"},{"body":{"nodeType":"YulBlock","src":"2284:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2301:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2324:5:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"2306:17:9"},"nodeType":"YulFunctionCall","src":"2306:24:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:9"},"nodeType":"YulFunctionCall","src":"2294:37:9"},"nodeType":"YulExpressionStatement","src":"2294:37:9"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2272:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2279:3:9","type":""}],"src":"2219:118:9"},{"body":{"nodeType":"YulBlock","src":"2553:454:9","statements":[{"nodeType":"YulAssignment","src":"2563:27:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2575:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2586:3:9","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2571:3:9"},"nodeType":"YulFunctionCall","src":"2571:19:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2563:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2644:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2657:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2668:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2653:3:9"},"nodeType":"YulFunctionCall","src":"2653:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"2600:43:9"},"nodeType":"YulFunctionCall","src":"2600:71:9"},"nodeType":"YulExpressionStatement","src":"2600:71:9"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2725:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2738:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2749:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2734:3:9"},"nodeType":"YulFunctionCall","src":"2734:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2681:43:9"},"nodeType":"YulFunctionCall","src":"2681:72:9"},"nodeType":"YulExpressionStatement","src":"2681:72:9"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2807:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2820:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2831:2:9","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2816:3:9"},"nodeType":"YulFunctionCall","src":"2816:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2763:43:9"},"nodeType":"YulFunctionCall","src":"2763:72:9"},"nodeType":"YulExpressionStatement","src":"2763:72:9"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2889:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2902:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2913:2:9","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2898:3:9"},"nodeType":"YulFunctionCall","src":"2898:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2845:43:9"},"nodeType":"YulFunctionCall","src":"2845:72:9"},"nodeType":"YulExpressionStatement","src":"2845:72:9"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2971:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2984:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2995:3:9","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2980:3:9"},"nodeType":"YulFunctionCall","src":"2980:19:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2927:43:9"},"nodeType":"YulFunctionCall","src":"2927:73:9"},"nodeType":"YulExpressionStatement","src":"2927:73:9"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2493:9:9","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2505:6:9","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2513:6:9","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2521:6:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2529:6:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2537:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2548:4:9","type":""}],"src":"2343:664:9"},{"body":{"nodeType":"YulBlock","src":"3111:124:9","statements":[{"nodeType":"YulAssignment","src":"3121:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3133:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3144:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3129:3:9"},"nodeType":"YulFunctionCall","src":"3129:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3121:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3201:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3214:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3225:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3210:3:9"},"nodeType":"YulFunctionCall","src":"3210:17:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"3157:43:9"},"nodeType":"YulFunctionCall","src":"3157:71:9"},"nodeType":"YulExpressionStatement","src":"3157:71:9"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3083:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3095:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3106:4:9","type":""}],"src":"3013:222:9"},{"body":{"nodeType":"YulBlock","src":"3395:288:9","statements":[{"nodeType":"YulAssignment","src":"3405:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3417:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3428:2:9","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3413:3:9"},"nodeType":"YulFunctionCall","src":"3413:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3405:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3485:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3498:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3509:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3494:3:9"},"nodeType":"YulFunctionCall","src":"3494:17:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"3441:43:9"},"nodeType":"YulFunctionCall","src":"3441:71:9"},"nodeType":"YulExpressionStatement","src":"3441:71:9"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3566:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3579:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3590:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3575:3:9"},"nodeType":"YulFunctionCall","src":"3575:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"3522:43:9"},"nodeType":"YulFunctionCall","src":"3522:72:9"},"nodeType":"YulExpressionStatement","src":"3522:72:9"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3648:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3661:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3672:2:9","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3657:3:9"},"nodeType":"YulFunctionCall","src":"3657:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"3604:43:9"},"nodeType":"YulFunctionCall","src":"3604:72:9"},"nodeType":"YulExpressionStatement","src":"3604:72:9"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3351:9:9","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3363:6:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3371:6:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3379:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3390:4:9","type":""}],"src":"3241:442:9"},{"body":{"nodeType":"YulBlock","src":"3721:28:9","statements":[{"nodeType":"YulAssignment","src":"3731:12:9","value":{"name":"value","nodeType":"YulIdentifier","src":"3738:5:9"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"3731:3:9"}]}]},"name":"identity","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3707:5:9","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"3717:3:9","type":""}],"src":"3689:60:9"},{"body":{"nodeType":"YulBlock","src":"3815:82:9","statements":[{"nodeType":"YulAssignment","src":"3825:66:9","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3883:5:9"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"3865:17:9"},"nodeType":"YulFunctionCall","src":"3865:24:9"}],"functionName":{"name":"identity","nodeType":"YulIdentifier","src":"3856:8:9"},"nodeType":"YulFunctionCall","src":"3856:34:9"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"3838:17:9"},"nodeType":"YulFunctionCall","src":"3838:53:9"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"3825:9:9"}]}]},"name":"convert_t_uint160_to_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3795:5:9","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"3805:9:9","type":""}],"src":"3755:142:9"},{"body":{"nodeType":"YulBlock","src":"3963:66:9","statements":[{"nodeType":"YulAssignment","src":"3973:50:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4017:5:9"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nodeType":"YulIdentifier","src":"3986:30:9"},"nodeType":"YulFunctionCall","src":"3986:37:9"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"3973:9:9"}]}]},"name":"convert_t_uint160_to_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3943:5:9","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"3953:9:9","type":""}],"src":"3903:126:9"},{"body":{"nodeType":"YulBlock","src":"4109:66:9","statements":[{"nodeType":"YulAssignment","src":"4119:50:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4163:5:9"}],"functionName":{"name":"convert_t_uint160_to_t_address","nodeType":"YulIdentifier","src":"4132:30:9"},"nodeType":"YulFunctionCall","src":"4132:37:9"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"4119:9:9"}]}]},"name":"convert_t_contract$_IERC20_$877_to_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4089:5:9","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"4099:9:9","type":""}],"src":"4035:140:9"},{"body":{"nodeType":"YulBlock","src":"4260:80:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4277:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4327:5:9"}],"functionName":{"name":"convert_t_contract$_IERC20_$877_to_t_address","nodeType":"YulIdentifier","src":"4282:44:9"},"nodeType":"YulFunctionCall","src":"4282:51:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:9"},"nodeType":"YulFunctionCall","src":"4270:64:9"},"nodeType":"YulExpressionStatement","src":"4270:64:9"}]},"name":"abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4248:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4255:3:9","type":""}],"src":"4181:159:9"},{"body":{"nodeType":"YulBlock","src":"4458:138:9","statements":[{"nodeType":"YulAssignment","src":"4468:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4480:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"4491:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4476:3:9"},"nodeType":"YulFunctionCall","src":"4476:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4468:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4562:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4575:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"4586:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4571:3:9"},"nodeType":"YulFunctionCall","src":"4571:17:9"}],"functionName":{"name":"abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack","nodeType":"YulIdentifier","src":"4504:57:9"},"nodeType":"YulFunctionCall","src":"4504:85:9"},"nodeType":"YulExpressionStatement","src":"4504:85:9"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$877__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4430:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4442:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4453:4:9","type":""}],"src":"4346:250:9"},{"body":{"nodeType":"YulBlock","src":"4698:73:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4715:3:9"},{"name":"length","nodeType":"YulIdentifier","src":"4720:6:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4708:6:9"},"nodeType":"YulFunctionCall","src":"4708:19:9"},"nodeType":"YulExpressionStatement","src":"4708:19:9"},{"nodeType":"YulAssignment","src":"4736:29:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4755:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"4760:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4751:3:9"},"nodeType":"YulFunctionCall","src":"4751:14:9"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"4736:11:9"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4670:3:9","type":""},{"name":"length","nodeType":"YulTypedName","src":"4675:6:9","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"4686:11:9","type":""}],"src":"4602:169:9"},{"body":{"nodeType":"YulBlock","src":"4883:62:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4905:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"4913:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4901:3:9"},"nodeType":"YulFunctionCall","src":"4901:14:9"},{"hexValue":"416c72656164792072656769737465726564","kind":"string","nodeType":"YulLiteral","src":"4917:20:9","type":"","value":"Already registered"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4894:6:9"},"nodeType":"YulFunctionCall","src":"4894:44:9"},"nodeType":"YulExpressionStatement","src":"4894:44:9"}]},"name":"store_literal_in_memory_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"4875:6:9","type":""}],"src":"4777:168:9"},{"body":{"nodeType":"YulBlock","src":"5097:220:9","statements":[{"nodeType":"YulAssignment","src":"5107:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5173:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"5178:2:9","type":"","value":"18"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"5114:58:9"},"nodeType":"YulFunctionCall","src":"5114:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5107:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5279:3:9"}],"functionName":{"name":"store_literal_in_memory_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2","nodeType":"YulIdentifier","src":"5190:88:9"},"nodeType":"YulFunctionCall","src":"5190:93:9"},"nodeType":"YulExpressionStatement","src":"5190:93:9"},{"nodeType":"YulAssignment","src":"5292:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5303:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"5308:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5299:3:9"},"nodeType":"YulFunctionCall","src":"5299:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5292:3:9"}]}]},"name":"abi_encode_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5085:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5093:3:9","type":""}],"src":"4951:366:9"},{"body":{"nodeType":"YulBlock","src":"5494:248:9","statements":[{"nodeType":"YulAssignment","src":"5504:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5516:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"5527:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5512:3:9"},"nodeType":"YulFunctionCall","src":"5512:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5504:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5551:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"5562:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5547:3:9"},"nodeType":"YulFunctionCall","src":"5547:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"5570:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"5576:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5566:3:9"},"nodeType":"YulFunctionCall","src":"5566:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5540:6:9"},"nodeType":"YulFunctionCall","src":"5540:47:9"},"nodeType":"YulExpressionStatement","src":"5540:47:9"},{"nodeType":"YulAssignment","src":"5596:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"5730:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"5604:124:9"},"nodeType":"YulFunctionCall","src":"5604:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5596:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5474:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5489:4:9","type":""}],"src":"5323:419:9"},{"body":{"nodeType":"YulBlock","src":"5854:65:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5876:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"5884:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5872:3:9"},"nodeType":"YulFunctionCall","src":"5872:14:9"},{"hexValue":"43616e6e6f7420726566657220796f757273656c66","kind":"string","nodeType":"YulLiteral","src":"5888:23:9","type":"","value":"Cannot refer yourself"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5865:6:9"},"nodeType":"YulFunctionCall","src":"5865:47:9"},"nodeType":"YulExpressionStatement","src":"5865:47:9"}]},"name":"store_literal_in_memory_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"5846:6:9","type":""}],"src":"5748:171:9"},{"body":{"nodeType":"YulBlock","src":"6071:220:9","statements":[{"nodeType":"YulAssignment","src":"6081:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6147:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"6152:2:9","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"6088:58:9"},"nodeType":"YulFunctionCall","src":"6088:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6081:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6253:3:9"}],"functionName":{"name":"store_literal_in_memory_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51","nodeType":"YulIdentifier","src":"6164:88:9"},"nodeType":"YulFunctionCall","src":"6164:93:9"},"nodeType":"YulExpressionStatement","src":"6164:93:9"},{"nodeType":"YulAssignment","src":"6266:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6277:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"6282:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6273:3:9"},"nodeType":"YulFunctionCall","src":"6273:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6266:3:9"}]}]},"name":"abi_encode_t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6059:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6067:3:9","type":""}],"src":"5925:366:9"},{"body":{"nodeType":"YulBlock","src":"6468:248:9","statements":[{"nodeType":"YulAssignment","src":"6478:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6490:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"6501:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6486:3:9"},"nodeType":"YulFunctionCall","src":"6486:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6478:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6525:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"6536:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6521:3:9"},"nodeType":"YulFunctionCall","src":"6521:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"6544:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"6550:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6540:3:9"},"nodeType":"YulFunctionCall","src":"6540:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6514:6:9"},"nodeType":"YulFunctionCall","src":"6514:47:9"},"nodeType":"YulExpressionStatement","src":"6514:47:9"},{"nodeType":"YulAssignment","src":"6570:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"6704:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"6578:124:9"},"nodeType":"YulFunctionCall","src":"6578:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6570:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6448:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6463:4:9","type":""}],"src":"6297:419:9"},{"body":{"nodeType":"YulBlock","src":"6828:58:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"6850:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"6858:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6846:3:9"},"nodeType":"YulFunctionCall","src":"6846:14:9"},{"hexValue":"496e76616c69642075706c696e65","kind":"string","nodeType":"YulLiteral","src":"6862:16:9","type":"","value":"Invalid upline"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6839:6:9"},"nodeType":"YulFunctionCall","src":"6839:40:9"},"nodeType":"YulExpressionStatement","src":"6839:40:9"}]},"name":"store_literal_in_memory_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"6820:6:9","type":""}],"src":"6722:164:9"},{"body":{"nodeType":"YulBlock","src":"7038:220:9","statements":[{"nodeType":"YulAssignment","src":"7048:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7114:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"7119:2:9","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7055:58:9"},"nodeType":"YulFunctionCall","src":"7055:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7048:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7220:3:9"}],"functionName":{"name":"store_literal_in_memory_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8","nodeType":"YulIdentifier","src":"7131:88:9"},"nodeType":"YulFunctionCall","src":"7131:93:9"},"nodeType":"YulExpressionStatement","src":"7131:93:9"},{"nodeType":"YulAssignment","src":"7233:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7244:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"7249:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7240:3:9"},"nodeType":"YulFunctionCall","src":"7240:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7233:3:9"}]}]},"name":"abi_encode_t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"7026:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7034:3:9","type":""}],"src":"6892:366:9"},{"body":{"nodeType":"YulBlock","src":"7435:248:9","statements":[{"nodeType":"YulAssignment","src":"7445:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7457:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"7468:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7453:3:9"},"nodeType":"YulFunctionCall","src":"7453:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7445:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7492:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"7503:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7488:3:9"},"nodeType":"YulFunctionCall","src":"7488:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"7511:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"7517:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7507:3:9"},"nodeType":"YulFunctionCall","src":"7507:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7481:6:9"},"nodeType":"YulFunctionCall","src":"7481:47:9"},"nodeType":"YulExpressionStatement","src":"7481:47:9"},{"nodeType":"YulAssignment","src":"7537:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"7671:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7545:124:9"},"nodeType":"YulFunctionCall","src":"7545:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7537:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7415:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7430:4:9","type":""}],"src":"7264:419:9"},{"body":{"nodeType":"YulBlock","src":"7795:64:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7817:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"7825:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7813:3:9"},"nodeType":"YulFunctionCall","src":"7813:14:9"},{"hexValue":"4e6f20626f6e757320746f207769746864726177","kind":"string","nodeType":"YulLiteral","src":"7829:22:9","type":"","value":"No bonus to withdraw"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7806:6:9"},"nodeType":"YulFunctionCall","src":"7806:46:9"},"nodeType":"YulExpressionStatement","src":"7806:46:9"}]},"name":"store_literal_in_memory_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"7787:6:9","type":""}],"src":"7689:170:9"},{"body":{"nodeType":"YulBlock","src":"8011:220:9","statements":[{"nodeType":"YulAssignment","src":"8021:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8087:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"8092:2:9","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8028:58:9"},"nodeType":"YulFunctionCall","src":"8028:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8021:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8193:3:9"}],"functionName":{"name":"store_literal_in_memory_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4","nodeType":"YulIdentifier","src":"8104:88:9"},"nodeType":"YulFunctionCall","src":"8104:93:9"},"nodeType":"YulExpressionStatement","src":"8104:93:9"},{"nodeType":"YulAssignment","src":"8206:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8217:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"8222:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8213:3:9"},"nodeType":"YulFunctionCall","src":"8213:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8206:3:9"}]}]},"name":"abi_encode_t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"7999:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8007:3:9","type":""}],"src":"7865:366:9"},{"body":{"nodeType":"YulBlock","src":"8408:248:9","statements":[{"nodeType":"YulAssignment","src":"8418:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8430:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"8441:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8426:3:9"},"nodeType":"YulFunctionCall","src":"8426:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8418:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8465:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"8476:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8461:3:9"},"nodeType":"YulFunctionCall","src":"8461:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"8484:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"8490:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8480:3:9"},"nodeType":"YulFunctionCall","src":"8480:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8454:6:9"},"nodeType":"YulFunctionCall","src":"8454:47:9"},"nodeType":"YulExpressionStatement","src":"8454:47:9"},{"nodeType":"YulAssignment","src":"8510:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"8644:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8518:124:9"},"nodeType":"YulFunctionCall","src":"8518:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8510:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8388:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8403:4:9","type":""}],"src":"8237:419:9"},{"body":{"nodeType":"YulBlock","src":"8788:206:9","statements":[{"nodeType":"YulAssignment","src":"8798:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8810:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"8821:2:9","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8806:3:9"},"nodeType":"YulFunctionCall","src":"8806:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8798:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8878:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8891:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"8902:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8887:3:9"},"nodeType":"YulFunctionCall","src":"8887:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"8834:43:9"},"nodeType":"YulFunctionCall","src":"8834:71:9"},"nodeType":"YulExpressionStatement","src":"8834:71:9"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8959:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8972:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"8983:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8968:3:9"},"nodeType":"YulFunctionCall","src":"8968:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"8915:43:9"},"nodeType":"YulFunctionCall","src":"8915:72:9"},"nodeType":"YulExpressionStatement","src":"8915:72:9"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8752:9:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8764:6:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8772:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8783:4:9","type":""}],"src":"8662:332:9"},{"body":{"nodeType":"YulBlock","src":"9042:48:9","statements":[{"nodeType":"YulAssignment","src":"9052:32:9","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9077:5:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9070:6:9"},"nodeType":"YulFunctionCall","src":"9070:13:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9063:6:9"},"nodeType":"YulFunctionCall","src":"9063:21:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"9052:7:9"}]}]},"name":"cleanup_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9024:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"9034:7:9","type":""}],"src":"9000:90:9"},{"body":{"nodeType":"YulBlock","src":"9136:76:9","statements":[{"body":{"nodeType":"YulBlock","src":"9190:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9199:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9202:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9192:6:9"},"nodeType":"YulFunctionCall","src":"9192:12:9"},"nodeType":"YulExpressionStatement","src":"9192:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9159:5:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9181:5:9"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"9166:14:9"},"nodeType":"YulFunctionCall","src":"9166:21:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9156:2:9"},"nodeType":"YulFunctionCall","src":"9156:32:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9149:6:9"},"nodeType":"YulFunctionCall","src":"9149:40:9"},"nodeType":"YulIf","src":"9146:60:9"}]},"name":"validator_revert_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9129:5:9","type":""}],"src":"9096:116:9"},{"body":{"nodeType":"YulBlock","src":"9278:77:9","statements":[{"nodeType":"YulAssignment","src":"9288:22:9","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9303:6:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9297:5:9"},"nodeType":"YulFunctionCall","src":"9297:13:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9288:5:9"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9343:5:9"}],"functionName":{"name":"validator_revert_t_bool","nodeType":"YulIdentifier","src":"9319:23:9"},"nodeType":"YulFunctionCall","src":"9319:30:9"},"nodeType":"YulExpressionStatement","src":"9319:30:9"}]},"name":"abi_decode_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"9256:6:9","type":""},{"name":"end","nodeType":"YulTypedName","src":"9264:3:9","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"9272:5:9","type":""}],"src":"9218:137:9"},{"body":{"nodeType":"YulBlock","src":"9435:271:9","statements":[{"body":{"nodeType":"YulBlock","src":"9481:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"9483:77:9"},"nodeType":"YulFunctionCall","src":"9483:79:9"},"nodeType":"YulExpressionStatement","src":"9483:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9456:7:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"9465:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9452:3:9"},"nodeType":"YulFunctionCall","src":"9452:23:9"},{"kind":"number","nodeType":"YulLiteral","src":"9477:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9448:3:9"},"nodeType":"YulFunctionCall","src":"9448:32:9"},"nodeType":"YulIf","src":"9445:119:9"},{"nodeType":"YulBlock","src":"9574:125:9","statements":[{"nodeType":"YulVariableDeclaration","src":"9589:15:9","value":{"kind":"number","nodeType":"YulLiteral","src":"9603:1:9","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9593:6:9","type":""}]},{"nodeType":"YulAssignment","src":"9618:71:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9661:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"9672:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9657:3:9"},"nodeType":"YulFunctionCall","src":"9657:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9681:7:9"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nodeType":"YulIdentifier","src":"9628:28:9"},"nodeType":"YulFunctionCall","src":"9628:61:9"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9618:6:9"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9405:9:9","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9416:7:9","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9428:6:9","type":""}],"src":"9361:345:9"},{"body":{"nodeType":"YulBlock","src":"9818:59:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"9840:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"9848:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9836:3:9"},"nodeType":"YulFunctionCall","src":"9836:14:9"},{"hexValue":"5472616e73666572206661696c6564","kind":"string","nodeType":"YulLiteral","src":"9852:17:9","type":"","value":"Transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9829:6:9"},"nodeType":"YulFunctionCall","src":"9829:41:9"},"nodeType":"YulExpressionStatement","src":"9829:41:9"}]},"name":"store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"9810:6:9","type":""}],"src":"9712:165:9"},{"body":{"nodeType":"YulBlock","src":"10029:220:9","statements":[{"nodeType":"YulAssignment","src":"10039:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10105:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"10110:2:9","type":"","value":"15"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10046:58:9"},"nodeType":"YulFunctionCall","src":"10046:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10039:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10211:3:9"}],"functionName":{"name":"store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","nodeType":"YulIdentifier","src":"10122:88:9"},"nodeType":"YulFunctionCall","src":"10122:93:9"},"nodeType":"YulExpressionStatement","src":"10122:93:9"},{"nodeType":"YulAssignment","src":"10224:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10235:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"10240:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10231:3:9"},"nodeType":"YulFunctionCall","src":"10231:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10224:3:9"}]}]},"name":"abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10017:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10025:3:9","type":""}],"src":"9883:366:9"},{"body":{"nodeType":"YulBlock","src":"10426:248:9","statements":[{"nodeType":"YulAssignment","src":"10436:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10448:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"10459:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10444:3:9"},"nodeType":"YulFunctionCall","src":"10444:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10436:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10483:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"10494:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10479:3:9"},"nodeType":"YulFunctionCall","src":"10479:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10502:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"10508:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10498:3:9"},"nodeType":"YulFunctionCall","src":"10498:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10472:6:9"},"nodeType":"YulFunctionCall","src":"10472:47:9"},"nodeType":"YulExpressionStatement","src":"10472:47:9"},{"nodeType":"YulAssignment","src":"10528:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10662:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10536:124:9"},"nodeType":"YulFunctionCall","src":"10536:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10528:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10406:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10421:4:9","type":""}],"src":"10255:419:9"},{"body":{"nodeType":"YulBlock","src":"10786:59:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10808:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"10816:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10804:3:9"},"nodeType":"YulFunctionCall","src":"10804:14:9"},{"hexValue":"496e76616c6964207061636b616765","kind":"string","nodeType":"YulLiteral","src":"10820:17:9","type":"","value":"Invalid package"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10797:6:9"},"nodeType":"YulFunctionCall","src":"10797:41:9"},"nodeType":"YulExpressionStatement","src":"10797:41:9"}]},"name":"store_literal_in_memory_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"10778:6:9","type":""}],"src":"10680:165:9"},{"body":{"nodeType":"YulBlock","src":"10997:220:9","statements":[{"nodeType":"YulAssignment","src":"11007:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11073:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"11078:2:9","type":"","value":"15"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11014:58:9"},"nodeType":"YulFunctionCall","src":"11014:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"11007:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11179:3:9"}],"functionName":{"name":"store_literal_in_memory_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f","nodeType":"YulIdentifier","src":"11090:88:9"},"nodeType":"YulFunctionCall","src":"11090:93:9"},"nodeType":"YulExpressionStatement","src":"11090:93:9"},{"nodeType":"YulAssignment","src":"11192:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11203:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"11208:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11199:3:9"},"nodeType":"YulFunctionCall","src":"11199:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11192:3:9"}]}]},"name":"abi_encode_t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10985:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10993:3:9","type":""}],"src":"10851:366:9"},{"body":{"nodeType":"YulBlock","src":"11394:248:9","statements":[{"nodeType":"YulAssignment","src":"11404:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11416:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"11427:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11412:3:9"},"nodeType":"YulFunctionCall","src":"11412:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11404:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11451:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"11462:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11447:3:9"},"nodeType":"YulFunctionCall","src":"11447:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11470:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"11476:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11466:3:9"},"nodeType":"YulFunctionCall","src":"11466:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11440:6:9"},"nodeType":"YulFunctionCall","src":"11440:47:9"},"nodeType":"YulExpressionStatement","src":"11440:47:9"},{"nodeType":"YulAssignment","src":"11496:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11630:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11504:124:9"},"nodeType":"YulFunctionCall","src":"11504:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11496:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11374:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11389:4:9","type":""}],"src":"11223:419:9"},{"body":{"nodeType":"YulBlock","src":"11676:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11693:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11696:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11686:6:9"},"nodeType":"YulFunctionCall","src":"11686:88:9"},"nodeType":"YulExpressionStatement","src":"11686:88:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11790:1:9","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11793:4:9","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11783:6:9"},"nodeType":"YulFunctionCall","src":"11783:15:9"},"nodeType":"YulExpressionStatement","src":"11783:15:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11814:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11817:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11807:6:9"},"nodeType":"YulFunctionCall","src":"11807:15:9"},"nodeType":"YulExpressionStatement","src":"11807:15:9"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"11648:180:9"},{"body":{"nodeType":"YulBlock","src":"11988:288:9","statements":[{"nodeType":"YulAssignment","src":"11998:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12010:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"12021:2:9","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12006:3:9"},"nodeType":"YulFunctionCall","src":"12006:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11998:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12078:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12091:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"12102:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12087:3:9"},"nodeType":"YulFunctionCall","src":"12087:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"12034:43:9"},"nodeType":"YulFunctionCall","src":"12034:71:9"},"nodeType":"YulExpressionStatement","src":"12034:71:9"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12159:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12172:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"12183:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12168:3:9"},"nodeType":"YulFunctionCall","src":"12168:18:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"12115:43:9"},"nodeType":"YulFunctionCall","src":"12115:72:9"},"nodeType":"YulExpressionStatement","src":"12115:72:9"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12241:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12254:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"12265:2:9","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12250:3:9"},"nodeType":"YulFunctionCall","src":"12250:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"12197:43:9"},"nodeType":"YulFunctionCall","src":"12197:72:9"},"nodeType":"YulExpressionStatement","src":"12197:72:9"}]},"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":"11944:9:9","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11956:6:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11964:6:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11972:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11983:4:9","type":""}],"src":"11834:442:9"},{"body":{"nodeType":"YulBlock","src":"12310:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12327:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12330:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12320:6:9"},"nodeType":"YulFunctionCall","src":"12320:88:9"},"nodeType":"YulExpressionStatement","src":"12320:88:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12424:1:9","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12427:4:9","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12417:6:9"},"nodeType":"YulFunctionCall","src":"12417:15:9"},"nodeType":"YulExpressionStatement","src":"12417:15:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12448:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12451:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12441:6:9"},"nodeType":"YulFunctionCall","src":"12441:15:9"},"nodeType":"YulExpressionStatement","src":"12441:15:9"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12282:180:9"},{"body":{"nodeType":"YulBlock","src":"12516:362:9","statements":[{"nodeType":"YulAssignment","src":"12526:25:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12549:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"12531:17:9"},"nodeType":"YulFunctionCall","src":"12531:20:9"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"12526:1:9"}]},{"nodeType":"YulAssignment","src":"12560:25:9","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12583:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"12565:17:9"},"nodeType":"YulFunctionCall","src":"12565:20:9"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"12560:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"12594:28:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12617:1:9"},{"name":"y","nodeType":"YulIdentifier","src":"12620:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12613:3:9"},"nodeType":"YulFunctionCall","src":"12613:9:9"},"variables":[{"name":"product_raw","nodeType":"YulTypedName","src":"12598:11:9","type":""}]},{"nodeType":"YulAssignment","src":"12631:41:9","value":{"arguments":[{"name":"product_raw","nodeType":"YulIdentifier","src":"12660:11:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"12642:17:9"},"nodeType":"YulFunctionCall","src":"12642:30:9"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"12631:7:9"}]},{"body":{"nodeType":"YulBlock","src":"12849:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12851:16:9"},"nodeType":"YulFunctionCall","src":"12851:18:9"},"nodeType":"YulExpressionStatement","src":"12851:18:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12782:1:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12775:6:9"},"nodeType":"YulFunctionCall","src":"12775:9:9"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12805:1:9"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"12812:7:9"},{"name":"x","nodeType":"YulIdentifier","src":"12821:1:9"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"12808:3:9"},"nodeType":"YulFunctionCall","src":"12808:15:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12802:2:9"},"nodeType":"YulFunctionCall","src":"12802:22:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"12755:2:9"},"nodeType":"YulFunctionCall","src":"12755:83:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12735:6:9"},"nodeType":"YulFunctionCall","src":"12735:113:9"},"nodeType":"YulIf","src":"12732:139:9"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12499:1:9","type":""},{"name":"y","nodeType":"YulTypedName","src":"12502:1:9","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"12508:7:9","type":""}],"src":"12468:410:9"},{"body":{"nodeType":"YulBlock","src":"12912:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12929:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12932:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12922:6:9"},"nodeType":"YulFunctionCall","src":"12922:88:9"},"nodeType":"YulExpressionStatement","src":"12922:88:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13026:1:9","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13029:4:9","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13019:6:9"},"nodeType":"YulFunctionCall","src":"13019:15:9"},"nodeType":"YulExpressionStatement","src":"13019:15:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13050:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13053:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13043:6:9"},"nodeType":"YulFunctionCall","src":"13043:15:9"},"nodeType":"YulExpressionStatement","src":"13043:15:9"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"12884:180:9"},{"body":{"nodeType":"YulBlock","src":"13112:143:9","statements":[{"nodeType":"YulAssignment","src":"13122:25:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13145:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"13127:17:9"},"nodeType":"YulFunctionCall","src":"13127:20:9"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"13122:1:9"}]},{"nodeType":"YulAssignment","src":"13156:25:9","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13179:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"13161:17:9"},"nodeType":"YulFunctionCall","src":"13161:20:9"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"13156:1:9"}]},{"body":{"nodeType":"YulBlock","src":"13203:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"13205:16:9"},"nodeType":"YulFunctionCall","src":"13205:18:9"},"nodeType":"YulExpressionStatement","src":"13205:18:9"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13200:1:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13193:6:9"},"nodeType":"YulFunctionCall","src":"13193:9:9"},"nodeType":"YulIf","src":"13190:35:9"},{"nodeType":"YulAssignment","src":"13235:14:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13244:1:9"},{"name":"y","nodeType":"YulIdentifier","src":"13247:1:9"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13240:3:9"},"nodeType":"YulFunctionCall","src":"13240:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"13235:1:9"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13101:1:9","type":""},{"name":"y","nodeType":"YulTypedName","src":"13104:1:9","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"13110:1:9","type":""}],"src":"13070:185:9"},{"body":{"nodeType":"YulBlock","src":"13387:206:9","statements":[{"nodeType":"YulAssignment","src":"13397:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13409:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"13420:2:9","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13405:3:9"},"nodeType":"YulFunctionCall","src":"13405:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13397:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13477:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13490:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"13501:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13486:3:9"},"nodeType":"YulFunctionCall","src":"13486:17:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"13433:43:9"},"nodeType":"YulFunctionCall","src":"13433:71:9"},"nodeType":"YulExpressionStatement","src":"13433:71:9"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13558:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13571:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"13582:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13567:3:9"},"nodeType":"YulFunctionCall","src":"13567:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"13514:43:9"},"nodeType":"YulFunctionCall","src":"13514:72:9"},"nodeType":"YulExpressionStatement","src":"13514:72:9"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13351:9:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13363:6:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13371:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13382:4:9","type":""}],"src":"13261:332:9"},{"body":{"nodeType":"YulBlock","src":"13643:147:9","statements":[{"nodeType":"YulAssignment","src":"13653:25:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13676:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"13658:17:9"},"nodeType":"YulFunctionCall","src":"13658:20:9"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"13653:1:9"}]},{"nodeType":"YulAssignment","src":"13687:25:9","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13710:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"13692:17:9"},"nodeType":"YulFunctionCall","src":"13692:20:9"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"13687:1:9"}]},{"nodeType":"YulAssignment","src":"13721:16:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13732:1:9"},{"name":"y","nodeType":"YulIdentifier","src":"13735:1:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13728:3:9"},"nodeType":"YulFunctionCall","src":"13728:9:9"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"13721:3:9"}]},{"body":{"nodeType":"YulBlock","src":"13761:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13763:16:9"},"nodeType":"YulFunctionCall","src":"13763:18:9"},"nodeType":"YulExpressionStatement","src":"13763:18:9"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13753:1:9"},{"name":"sum","nodeType":"YulIdentifier","src":"13756:3:9"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13750:2:9"},"nodeType":"YulFunctionCall","src":"13750:10:9"},"nodeType":"YulIf","src":"13747:36:9"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13630:1:9","type":""},{"name":"y","nodeType":"YulTypedName","src":"13633:1:9","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"13639:3:9","type":""}],"src":"13599:191:9"},{"body":{"nodeType":"YulBlock","src":"13902:124:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13924:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"13932:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13920:3:9"},"nodeType":"YulFunctionCall","src":"13920:14:9"},{"hexValue":"546172676574206e6f742072656163686564206f72206c6576656c20616c7265","kind":"string","nodeType":"YulLiteral","src":"13936:34:9","type":"","value":"Target not reached or level alre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13913:6:9"},"nodeType":"YulFunctionCall","src":"13913:58:9"},"nodeType":"YulExpressionStatement","src":"13913:58:9"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13992:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"14000:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13988:3:9"},"nodeType":"YulFunctionCall","src":"13988:15:9"},{"hexValue":"61647920636c61696d6564","kind":"string","nodeType":"YulLiteral","src":"14005:13:9","type":"","value":"ady claimed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13981:6:9"},"nodeType":"YulFunctionCall","src":"13981:38:9"},"nodeType":"YulExpressionStatement","src":"13981:38:9"}]},"name":"store_literal_in_memory_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"13894:6:9","type":""}],"src":"13796:230:9"},{"body":{"nodeType":"YulBlock","src":"14178:220:9","statements":[{"nodeType":"YulAssignment","src":"14188:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14254:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"14259:2:9","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14195:58:9"},"nodeType":"YulFunctionCall","src":"14195:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14188:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14360:3:9"}],"functionName":{"name":"store_literal_in_memory_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354","nodeType":"YulIdentifier","src":"14271:88:9"},"nodeType":"YulFunctionCall","src":"14271:93:9"},"nodeType":"YulExpressionStatement","src":"14271:93:9"},{"nodeType":"YulAssignment","src":"14373:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14384:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"14389:2:9","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14380:3:9"},"nodeType":"YulFunctionCall","src":"14380:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14373:3:9"}]}]},"name":"abi_encode_t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14166:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14174:3:9","type":""}],"src":"14032:366:9"},{"body":{"nodeType":"YulBlock","src":"14575:248:9","statements":[{"nodeType":"YulAssignment","src":"14585:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14597:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"14608:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14593:3:9"},"nodeType":"YulFunctionCall","src":"14593:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14585:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14632:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"14643:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14628:3:9"},"nodeType":"YulFunctionCall","src":"14628:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14651:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"14657:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14647:3:9"},"nodeType":"YulFunctionCall","src":"14647:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14621:6:9"},"nodeType":"YulFunctionCall","src":"14621:47:9"},"nodeType":"YulExpressionStatement","src":"14621:47:9"},{"nodeType":"YulAssignment","src":"14677:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14811:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14685:124:9"},"nodeType":"YulFunctionCall","src":"14685:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14677:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14555:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14570:4:9","type":""}],"src":"14404:419:9"},{"body":{"nodeType":"YulBlock","src":"14935:63:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14957:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"14965:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14953:3:9"},"nodeType":"YulFunctionCall","src":"14953:14:9"},{"hexValue":"496e76616c6964207374616b6520696e646578","kind":"string","nodeType":"YulLiteral","src":"14969:21:9","type":"","value":"Invalid stake index"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14946:6:9"},"nodeType":"YulFunctionCall","src":"14946:45:9"},"nodeType":"YulExpressionStatement","src":"14946:45:9"}]},"name":"store_literal_in_memory_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"14927:6:9","type":""}],"src":"14829:169:9"},{"body":{"nodeType":"YulBlock","src":"15150:220:9","statements":[{"nodeType":"YulAssignment","src":"15160:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15226:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"15231:2:9","type":"","value":"19"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15167:58:9"},"nodeType":"YulFunctionCall","src":"15167:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15160:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15332:3:9"}],"functionName":{"name":"store_literal_in_memory_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070","nodeType":"YulIdentifier","src":"15243:88:9"},"nodeType":"YulFunctionCall","src":"15243:93:9"},"nodeType":"YulExpressionStatement","src":"15243:93:9"},{"nodeType":"YulAssignment","src":"15345:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15356:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"15361:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15352:3:9"},"nodeType":"YulFunctionCall","src":"15352:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15345:3:9"}]}]},"name":"abi_encode_t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"15138:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15146:3:9","type":""}],"src":"15004:366:9"},{"body":{"nodeType":"YulBlock","src":"15547:248:9","statements":[{"nodeType":"YulAssignment","src":"15557:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15569:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"15580:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15565:3:9"},"nodeType":"YulFunctionCall","src":"15565:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15557:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15604:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"15615:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15600:3:9"},"nodeType":"YulFunctionCall","src":"15600:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15623:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"15629:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15619:3:9"},"nodeType":"YulFunctionCall","src":"15619:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15593:6:9"},"nodeType":"YulFunctionCall","src":"15593:47:9"},"nodeType":"YulExpressionStatement","src":"15593:47:9"},{"nodeType":"YulAssignment","src":"15649:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15783:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15657:124:9"},"nodeType":"YulFunctionCall","src":"15657:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15649:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15527:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15542:4:9","type":""}],"src":"15376:419:9"},{"body":{"nodeType":"YulBlock","src":"15907:60:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15929:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"15937:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15925:3:9"},"nodeType":"YulFunctionCall","src":"15925:14:9"},{"hexValue":"5374616b65206e6f7420616374697665","kind":"string","nodeType":"YulLiteral","src":"15941:18:9","type":"","value":"Stake not active"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15918:6:9"},"nodeType":"YulFunctionCall","src":"15918:42:9"},"nodeType":"YulExpressionStatement","src":"15918:42:9"}]},"name":"store_literal_in_memory_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"15899:6:9","type":""}],"src":"15801:166:9"},{"body":{"nodeType":"YulBlock","src":"16119:220:9","statements":[{"nodeType":"YulAssignment","src":"16129:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16195:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"16200:2:9","type":"","value":"16"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16136:58:9"},"nodeType":"YulFunctionCall","src":"16136:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16129:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16301:3:9"}],"functionName":{"name":"store_literal_in_memory_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5","nodeType":"YulIdentifier","src":"16212:88:9"},"nodeType":"YulFunctionCall","src":"16212:93:9"},"nodeType":"YulExpressionStatement","src":"16212:93:9"},{"nodeType":"YulAssignment","src":"16314:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16325:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"16330:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16321:3:9"},"nodeType":"YulFunctionCall","src":"16321:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16314:3:9"}]}]},"name":"abi_encode_t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16107:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16115:3:9","type":""}],"src":"15973:366:9"},{"body":{"nodeType":"YulBlock","src":"16516:248:9","statements":[{"nodeType":"YulAssignment","src":"16526:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16538:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"16549:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16534:3:9"},"nodeType":"YulFunctionCall","src":"16534:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16526:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16573:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"16584:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16569:3:9"},"nodeType":"YulFunctionCall","src":"16569:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16592:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"16598:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16588:3:9"},"nodeType":"YulFunctionCall","src":"16588:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16562:6:9"},"nodeType":"YulFunctionCall","src":"16562:47:9"},"nodeType":"YulExpressionStatement","src":"16562:47:9"},{"nodeType":"YulAssignment","src":"16618:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16752:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16626:124:9"},"nodeType":"YulFunctionCall","src":"16626:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16618:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16496:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16511:4:9","type":""}],"src":"16345:419:9"},{"body":{"nodeType":"YulBlock","src":"16815:149:9","statements":[{"nodeType":"YulAssignment","src":"16825:25:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"16848:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"16830:17:9"},"nodeType":"YulFunctionCall","src":"16830:20:9"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"16825:1:9"}]},{"nodeType":"YulAssignment","src":"16859:25:9","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"16882:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"16864:17:9"},"nodeType":"YulFunctionCall","src":"16864:20:9"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"16859:1:9"}]},{"nodeType":"YulAssignment","src":"16893:17:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"16905:1:9"},{"name":"y","nodeType":"YulIdentifier","src":"16908:1:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16901:3:9"},"nodeType":"YulFunctionCall","src":"16901:9:9"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"16893:4:9"}]},{"body":{"nodeType":"YulBlock","src":"16935:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"16937:16:9"},"nodeType":"YulFunctionCall","src":"16937:18:9"},"nodeType":"YulExpressionStatement","src":"16937:18:9"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"16926:4:9"},{"name":"x","nodeType":"YulIdentifier","src":"16932:1:9"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16923:2:9"},"nodeType":"YulFunctionCall","src":"16923:11:9"},"nodeType":"YulIf","src":"16920:37:9"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"16801:1:9","type":""},{"name":"y","nodeType":"YulTypedName","src":"16804:1:9","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"16810:4:9","type":""}],"src":"16770:194:9"},{"body":{"nodeType":"YulBlock","src":"17076:66:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"17098:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"17106:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17094:3:9"},"nodeType":"YulFunctionCall","src":"17094:14:9"},{"hexValue":"4e6f2070726f66697420746f20636c61696d20796574","kind":"string","nodeType":"YulLiteral","src":"17110:24:9","type":"","value":"No profit to claim yet"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17087:6:9"},"nodeType":"YulFunctionCall","src":"17087:48:9"},"nodeType":"YulExpressionStatement","src":"17087:48:9"}]},"name":"store_literal_in_memory_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"17068:6:9","type":""}],"src":"16970:172:9"},{"body":{"nodeType":"YulBlock","src":"17294:220:9","statements":[{"nodeType":"YulAssignment","src":"17304:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17370:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"17375:2:9","type":"","value":"22"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"17311:58:9"},"nodeType":"YulFunctionCall","src":"17311:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"17304:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17476:3:9"}],"functionName":{"name":"store_literal_in_memory_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad","nodeType":"YulIdentifier","src":"17387:88:9"},"nodeType":"YulFunctionCall","src":"17387:93:9"},"nodeType":"YulExpressionStatement","src":"17387:93:9"},{"nodeType":"YulAssignment","src":"17489:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17500:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"17505:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17496:3:9"},"nodeType":"YulFunctionCall","src":"17496:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"17489:3:9"}]}]},"name":"abi_encode_t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"17282:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"17290:3:9","type":""}],"src":"17148:366:9"},{"body":{"nodeType":"YulBlock","src":"17691:248:9","statements":[{"nodeType":"YulAssignment","src":"17701:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17713:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"17724:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17709:3:9"},"nodeType":"YulFunctionCall","src":"17709:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17701:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17748:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"17759:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17744:3:9"},"nodeType":"YulFunctionCall","src":"17744:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17767:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"17773:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17763:3:9"},"nodeType":"YulFunctionCall","src":"17763:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17737:6:9"},"nodeType":"YulFunctionCall","src":"17737:47:9"},"nodeType":"YulExpressionStatement","src":"17737:47:9"},{"nodeType":"YulAssignment","src":"17793:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17927:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"17801:124:9"},"nodeType":"YulFunctionCall","src":"17801:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17793:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17671:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17686:4:9","type":""}],"src":"17520:419:9"},{"body":{"nodeType":"YulBlock","src":"18051:65:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18073:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"18081:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18069:3:9"},"nodeType":"YulFunctionCall","src":"18069:14:9"},{"hexValue":"46696e616c207472616e73666572206661696c6564","kind":"string","nodeType":"YulLiteral","src":"18085:23:9","type":"","value":"Final transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18062:6:9"},"nodeType":"YulFunctionCall","src":"18062:47:9"},"nodeType":"YulExpressionStatement","src":"18062:47:9"}]},"name":"store_literal_in_memory_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"18043:6:9","type":""}],"src":"17945:171:9"},{"body":{"nodeType":"YulBlock","src":"18268:220:9","statements":[{"nodeType":"YulAssignment","src":"18278:74:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18344:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"18349:2:9","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"18285:58:9"},"nodeType":"YulFunctionCall","src":"18285:67:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"18278:3:9"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18450:3:9"}],"functionName":{"name":"store_literal_in_memory_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9","nodeType":"YulIdentifier","src":"18361:88:9"},"nodeType":"YulFunctionCall","src":"18361:93:9"},"nodeType":"YulExpressionStatement","src":"18361:93:9"},{"nodeType":"YulAssignment","src":"18463:19:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18474:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"18479:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18470:3:9"},"nodeType":"YulFunctionCall","src":"18470:12:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18463:3:9"}]}]},"name":"abi_encode_t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18256:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18264:3:9","type":""}],"src":"18122:366:9"},{"body":{"nodeType":"YulBlock","src":"18665:248:9","statements":[{"nodeType":"YulAssignment","src":"18675:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18687:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"18698:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18683:3:9"},"nodeType":"YulFunctionCall","src":"18683:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18675:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18722:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"18733:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18718:3:9"},"nodeType":"YulFunctionCall","src":"18718:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"18741:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"18747:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18737:3:9"},"nodeType":"YulFunctionCall","src":"18737:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18711:6:9"},"nodeType":"YulFunctionCall","src":"18711:47:9"},"nodeType":"YulExpressionStatement","src":"18711:47:9"},{"nodeType":"YulAssignment","src":"18767:139:9","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"18901:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"18775:124:9"},"nodeType":"YulFunctionCall","src":"18775:131:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18767:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18645:9:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18660:4:9","type":""}],"src":"18494:419:9"},{"body":{"nodeType":"YulBlock","src":"18962:190:9","statements":[{"nodeType":"YulAssignment","src":"18972:33:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18999:5:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"18981:17:9"},"nodeType":"YulFunctionCall","src":"18981:24:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"18972:5:9"}]},{"body":{"nodeType":"YulBlock","src":"19095:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19097:16:9"},"nodeType":"YulFunctionCall","src":"19097:18:9"},"nodeType":"YulExpressionStatement","src":"19097:18:9"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19020:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"19027:66:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19017:2:9"},"nodeType":"YulFunctionCall","src":"19017:77:9"},"nodeType":"YulIf","src":"19014:103:9"},{"nodeType":"YulAssignment","src":"19126:20:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19137:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"19144:1:9","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19133:3:9"},"nodeType":"YulFunctionCall","src":"19133:13:9"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19126:3:9"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18948:5:9","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18958:3:9","type":""}],"src":"18919:233:9"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value4,  add(headStart, 128))\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IERC20_$877_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IERC20_$877_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IERC20_$877__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2(memPtr) {\n\n        mstore(add(memPtr, 0), \"Already registered\")\n\n    }\n\n    function abi_encode_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n        store_literal_in_memory_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51(memPtr) {\n\n        mstore(add(memPtr, 0), \"Cannot refer yourself\")\n\n    }\n\n    function abi_encode_t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_218413e24d7817fa46f780a765a55d181a2663121ab3737af6e2eca3f387ed51_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8(memPtr) {\n\n        mstore(add(memPtr, 0), \"Invalid upline\")\n\n    }\n\n    function abi_encode_t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_063f01294bf9264d76a60fdd60b7f4517fb0ea156d6c8c0ca9d638548f509cf8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4(memPtr) {\n\n        mstore(add(memPtr, 0), \"No bonus to withdraw\")\n\n    }\n\n    function abi_encode_t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_74998d7d4c2af08da3001139e74beccd6eb45bb98a376c54b7d49fb380b73dd4_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51(memPtr) {\n\n        mstore(add(memPtr, 0), \"Transfer failed\")\n\n    }\n\n    function abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 15)\n        store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f(memPtr) {\n\n        mstore(add(memPtr, 0), \"Invalid package\")\n\n    }\n\n    function abi_encode_t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 15)\n        store_literal_in_memory_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a5304e04f009eb5c1735b2cef0559631504248c4b91cc094b677e63f90243c5f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\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        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354(memPtr) {\n\n        mstore(add(memPtr, 0), \"Target not reached or level alre\")\n\n        mstore(add(memPtr, 32), \"ady claimed\")\n\n    }\n\n    function abi_encode_t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d048205de710f059e002270beb57f4e9b530fe8b1713a9948eb0dd3857df0354_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070(memPtr) {\n\n        mstore(add(memPtr, 0), \"Invalid stake index\")\n\n    }\n\n    function abi_encode_t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n        store_literal_in_memory_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_1052a6d22b777769a6cc4c9627aa582bf852e3e95d151c74aa5d0528dd370070_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5(memPtr) {\n\n        mstore(add(memPtr, 0), \"Stake not active\")\n\n    }\n\n    function abi_encode_t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n        store_literal_in_memory_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_49a8fb21980346e21159789c8a6aeae582caa0fb158734c69c59180b044749e5_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad(memPtr) {\n\n        mstore(add(memPtr, 0), \"No profit to claim yet\")\n\n    }\n\n    function abi_encode_t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n        store_literal_in_memory_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_aed53e8cfc32f29679413c9cddfabd4b86c599ae3a041ade73ff43b6fd0a74ad_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9(memPtr) {\n\n        mstore(add(memPtr, 0), \"Final transfer failed\")\n\n    }\n\n    function abi_encode_t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c8658862e6589c3cd60dc9cf087a9748e4acc2ad617610f229c10ce31305f9e9_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function increment_t_uint256(value) -> ret {\n        value := cleanup_t_uint256(value)\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b662abf511610071578063b662abf514610157578063c216212a14610187578063cad4ea19146101b9578063d22dee48146101c3578063f2fde38b146101df578063f6392595146101fb576100b4565b80634420e486146100b9578063715018a6146100d55780638da5cb5b146100df57806391ca7f3c146100fd578063a694fc3a14610107578063a87430ba14610123575b600080fd5b6100d360048036038101906100ce919061183e565b610219565b005b6100dd6104a1565b005b6100e76104b5565b6040516100f4919061187a565b60405180910390f35b6101056104de565b005b610121600480360381019061011c91906118cb565b6106a2565b005b61013d6004803603810190610138919061183e565b6109ca565b60405161014e959493929190611907565b60405180910390f35b610171600480360381019061016c91906118cb565b610a20565b60405161017e919061195a565b60405180910390f35b6101a1600480360381019061019c91906118cb565b610a44565b6040516101b093929190611975565b60405180910390f35b6101c1610a7e565b005b6101dd60048036038101906101d891906118cb565b610d2d565b005b6101f960048036038101906101f4919061183e565b6111fc565b005b610203611282565b6040516102109190611a0b565b60405180910390f35b600073ffffffffffffffffffffffffffffffffffffffff16600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e190611a83565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034f90611aef565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005018054905011806103de57506103af6104b5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61041d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041490611b5b565b60405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6104a96112a8565b6104b3600061132f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104e66113f3565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905060008111610570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056790611bc7565b60405180910390fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610615929190611be7565b6020604051808303816000875af1158015610634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106589190611c48565b610697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068e90611cc1565b60405180910390fd5b506106a0611439565b565b6106aa6113f3565b60038054905081106106f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e890611d2d565b60405180910390fd5b60006003828154811061070757610706611d4d565b5b906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820154815250509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd333084600001516040518463ffffffff1660e01b81526004016107a393929190611d7c565b6020604051808303816000875af11580156107c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e69190611c48565b610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90611cc1565b60405180910390fd5b600060648260400151836000015161083d9190611de2565b6108479190611e53565b9050600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016040518060e001604052808581526020014281526020014281526020018460000151815260200183815260200160008152602001600115158152509080600181540180825580915050600190039060005260206000209060070201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff021916908315150217905550505061095b338360000151611442565b61096933836000015161166f565b3373ffffffffffffffffffffffffffffffffffffffff167f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee908484600001516040516109b5929190611e84565b60405180910390a250506109c7611439565b50565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154905085565b60058181548110610a3057600080fd5b906000526020600020016000915090505481565b60038181548110610a5457600080fd5b90600052602060002090600302016000915090508060000154908060010154908060020154905083565b610a866113f3565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600301549050600082600401549050600080600183610aeb9190611ead565b9050600181148015610b065750683635c9adc5dea000008410155b15610b145760039150610bc9565b600281148015610b2d575068a2a15d09519be000008410155b15610b3b5760059150610bc8565b600381148015610b55575069010f0cf064dd592000008410155b15610b635760079150610bc7565b600481148015610b7d575069021e19e0c9bab24000008410155b15610b8b57600a9150610bc6565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90611f53565b60405180910390fd5b5b5b5b600060648386610bd99190611de2565b610be39190611e53565b9050818660040181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c4b929190611be7565b6020604051808303816000875af1158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e9190611c48565b610ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc490611cc1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f9d4af69323c427453609e945e4119e0a9996a515582708d8866e5609a59e49cf8284604051610d15929190611e84565b60405180910390a2505050505050610d2b611439565b565b610d356113f3565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600501805490508210610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890611fbf565b60405180910390fd5b6000816005018381548110610dd957610dd8611d4d565b5b906000526020600020906007020190508060060160009054906101000a900460ff16610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e319061202b565b60405180910390fd5b600042905060006003836000015481548110610e5957610e58611d4d565b5b9060005260206000209060030201604051806060016040529081600082015481526020016001820154815260200160028201548152505090506000836002015483610ea4919061204b565b90506000620151808360200151610ebb9190611de2565b9050808560010154610ecd9190611ead565b841115610ef957808560010154610ee49190611ead565b9350846002015484610ef6919061204b565b91505b600083602001518660040154610f0f9190611e53565b90506000620151808483610f239190611de2565b610f2d9190611e53565b905060008111610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f69906120cb565b60405180910390fd5b80876005016000828254610f869190611ead565b9250508190555042876002018190555086600401548760050154106110bb5760008760060160006101000a81548160ff0219169083151502179055506000818860030154610fd49190611ead565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611033929190611be7565b6020604051808303816000875af1158015611052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110769190611c48565b6110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac90612137565b60405180910390fd5b5061119b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611118929190611be7565b6020604051808303816000875af1158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b9190611c48565b61119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190611cc1565b60405180910390fd5b5b3373ffffffffffffffffffffffffffffffffffffffff167f6a2cbfd0a4e37b7dace5dec7cf930020420c1aa4ca495bbf4972d9fd614ecc3b826040516111e1919061195a565b60405180910390a250505050505050506111f9611439565b50565b6112046112a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112765760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161126d919061187a565b60405180910390fd5b61127f8161132f565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112b06117d3565b73ffffffffffffffffffffffffffffffffffffffff166112ce6104b5565b73ffffffffffffffffffffffffffffffffffffffff161461132d576112f16117d3565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611324919061187a565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60026001540361142f576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b600581101561166957600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16031561166957600060646005838154811061150257611501611d4d565b5b9060005260206000200154856115189190611de2565b6115229190611e53565b905080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546115769190611ead565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb1da5bd041c3a852a00414e52da5f60612375abee4e87c90003be773e8dc5c8d836001866115da9190611ead565b6040516115e8929190611e84565b60405180910390a3600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050808061166190612157565b9150506114ac565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117ce5781600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461175d9190611ead565b92505081905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506116d7565b505050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061180b826117e0565b9050919050565b61181b81611800565b811461182657600080fd5b50565b60008135905061183881611812565b92915050565b600060208284031215611854576118536117db565b5b600061186284828501611829565b91505092915050565b61187481611800565b82525050565b600060208201905061188f600083018461186b565b92915050565b6000819050919050565b6118a881611895565b81146118b357600080fd5b50565b6000813590506118c58161189f565b92915050565b6000602082840312156118e1576118e06117db565b5b60006118ef848285016118b6565b91505092915050565b61190181611895565b82525050565b600060a08201905061191c600083018861186b565b61192960208301876118f8565b61193660408301866118f8565b61194360608301856118f8565b61195060808301846118f8565b9695505050505050565b600060208201905061196f60008301846118f8565b92915050565b600060608201905061198a60008301866118f8565b61199760208301856118f8565b6119a460408301846118f8565b949350505050565b6000819050919050565b60006119d16119cc6119c7846117e0565b6119ac565b6117e0565b9050919050565b60006119e3826119b6565b9050919050565b60006119f5826119d8565b9050919050565b611a05816119ea565b82525050565b6000602082019050611a2060008301846119fc565b92915050565b600082825260208201905092915050565b7f416c726561647920726567697374657265640000000000000000000000000000600082015250565b6000611a6d601283611a26565b9150611a7882611a37565b602082019050919050565b60006020820190508181036000830152611a9c81611a60565b9050919050565b7f43616e6e6f7420726566657220796f757273656c660000000000000000000000600082015250565b6000611ad9601583611a26565b9150611ae482611aa3565b602082019050919050565b60006020820190508181036000830152611b0881611acc565b9050919050565b7f496e76616c69642075706c696e65000000000000000000000000000000000000600082015250565b6000611b45600e83611a26565b9150611b5082611b0f565b602082019050919050565b60006020820190508181036000830152611b7481611b38565b9050919050565b7f4e6f20626f6e757320746f207769746864726177000000000000000000000000600082015250565b6000611bb1601483611a26565b9150611bbc82611b7b565b602082019050919050565b60006020820190508181036000830152611be081611ba4565b9050919050565b6000604082019050611bfc600083018561186b565b611c0960208301846118f8565b9392505050565b60008115159050919050565b611c2581611c10565b8114611c3057600080fd5b50565b600081519050611c4281611c1c565b92915050565b600060208284031215611c5e57611c5d6117db565b5b6000611c6c84828501611c33565b91505092915050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000611cab600f83611a26565b9150611cb682611c75565b602082019050919050565b60006020820190508181036000830152611cda81611c9e565b9050919050565b7f496e76616c6964207061636b6167650000000000000000000000000000000000600082015250565b6000611d17600f83611a26565b9150611d2282611ce1565b602082019050919050565b60006020820190508181036000830152611d4681611d0a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000606082019050611d91600083018661186b565b611d9e602083018561186b565b611dab60408301846118f8565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ded82611895565b9150611df883611895565b9250828202611e0681611895565b91508282048414831517611e1d57611e1c611db3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611e5e82611895565b9150611e6983611895565b925082611e7957611e78611e24565b5b828204905092915050565b6000604082019050611e9960008301856118f8565b611ea660208301846118f8565b9392505050565b6000611eb882611895565b9150611ec383611895565b9250828201905080821115611edb57611eda611db3565b5b92915050565b7f546172676574206e6f742072656163686564206f72206c6576656c20616c726560008201527f61647920636c61696d6564000000000000000000000000000000000000000000602082015250565b6000611f3d602b83611a26565b9150611f4882611ee1565b604082019050919050565b60006020820190508181036000830152611f6c81611f30565b9050919050565b7f496e76616c6964207374616b6520696e64657800000000000000000000000000600082015250565b6000611fa9601383611a26565b9150611fb482611f73565b602082019050919050565b60006020820190508181036000830152611fd881611f9c565b9050919050565b7f5374616b65206e6f742061637469766500000000000000000000000000000000600082015250565b6000612015601083611a26565b915061202082611fdf565b602082019050919050565b6000602082019050818103600083015261204481612008565b9050919050565b600061205682611895565b915061206183611895565b925082820390508181111561207957612078611db3565b5b92915050565b7f4e6f2070726f66697420746f20636c61696d2079657400000000000000000000600082015250565b60006120b5601683611a26565b91506120c08261207f565b602082019050919050565b600060208201905081810360008301526120e4816120a8565b9050919050565b7f46696e616c207472616e73666572206661696c65640000000000000000000000600082015250565b6000612121601583611a26565b915061212c826120eb565b602082019050919050565b6000602082019050818103600083015261215081612114565b9050919050565b600061216282611895565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361219457612193611db3565b5b60018201905091905056fea26469706673582212204e31c5cc9d3fe1a2a10d909681576a781172bab970ff37a74bdef6217875771664736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB662ABF5 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xB662ABF5 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xC216212A EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xCAD4EA19 EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0xD22DEE48 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xF6392595 EQ PUSH2 0x1FB JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x4420E486 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xDF JUMPI DUP1 PUSH4 0x91CA7F3C EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xA694FC3A EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0xA87430BA EQ PUSH2 0x123 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x183E JUMP JUMPDEST PUSH2 0x219 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDD PUSH2 0x4A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE7 PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0x187A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x4DE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x121 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11C SWAP2 SWAP1 PUSH2 0x18CB JUMP JUMPDEST PUSH2 0x6A2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x183E JUMP JUMPDEST PUSH2 0x9CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1907 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x171 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16C SWAP2 SWAP1 PUSH2 0x18CB JUMP JUMPDEST PUSH2 0xA20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17E SWAP2 SWAP1 PUSH2 0x195A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19C SWAP2 SWAP1 PUSH2 0x18CB JUMP JUMPDEST PUSH2 0xA44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C1 PUSH2 0xA7E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D8 SWAP2 SWAP1 PUSH2 0x18CB JUMP JUMPDEST PUSH2 0xD2D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1F9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x183E JUMP JUMPDEST PUSH2 0x11FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x203 PUSH2 0x1282 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x210 SWAP2 SWAP1 PUSH2 0x1A0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP1 PUSH2 0x1A83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x358 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34F SWAP1 PUSH2 0x1AEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD DUP1 SLOAD SWAP1 POP GT DUP1 PUSH2 0x3DE JUMPI POP PUSH2 0x3AF PUSH2 0x4B5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x41D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x414 SWAP1 PUSH2 0x1B5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x4A9 PUSH2 0x12A8 JUMP JUMPDEST PUSH2 0x4B3 PUSH1 0x0 PUSH2 0x132F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4E6 PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x1BC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x615 SWAP3 SWAP2 SWAP1 PUSH2 0x1BE7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x634 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 0x658 SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0x697 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x68E SWAP1 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0x6A0 PUSH2 0x1439 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x6AA PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x6F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6E8 SWAP1 PUSH2 0x1D2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x1D4D JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D7C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7C2 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 0x7E6 SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0x825 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81C SWAP1 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x64 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x83D SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP POP PUSH2 0x95B CALLER DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x1442 JUMP JUMPDEST PUSH2 0x969 CALLER DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x166F JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x1449C6DD7851ABC30ABF37F57715F492010519147CC2652FBC38202C18A6EE90 DUP5 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x9B5 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH2 0x9C7 PUSH2 0x1439 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0xA86 PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x4 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x1 DUP4 PUSH2 0xAEB SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 EQ DUP1 ISZERO PUSH2 0xB06 JUMPI POP PUSH9 0x3635C9ADC5DEA00000 DUP5 LT ISZERO JUMPDEST ISZERO PUSH2 0xB14 JUMPI PUSH1 0x3 SWAP2 POP PUSH2 0xBC9 JUMP JUMPDEST PUSH1 0x2 DUP2 EQ DUP1 ISZERO PUSH2 0xB2D JUMPI POP PUSH9 0xA2A15D09519BE00000 DUP5 LT ISZERO JUMPDEST ISZERO PUSH2 0xB3B JUMPI PUSH1 0x5 SWAP2 POP PUSH2 0xBC8 JUMP JUMPDEST PUSH1 0x3 DUP2 EQ DUP1 ISZERO PUSH2 0xB55 JUMPI POP PUSH10 0x10F0CF064DD59200000 DUP5 LT ISZERO JUMPDEST ISZERO PUSH2 0xB63 JUMPI PUSH1 0x7 SWAP2 POP PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x4 DUP2 EQ DUP1 ISZERO PUSH2 0xB7D JUMPI POP PUSH10 0x21E19E0C9BAB2400000 DUP5 LT ISZERO JUMPDEST ISZERO PUSH2 0xB8B JUMPI PUSH1 0xA SWAP2 POP PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBBD SWAP1 PUSH2 0x1F53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x64 DUP4 DUP7 PUSH2 0xBD9 SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST PUSH2 0xBE3 SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP DUP2 DUP7 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4B SWAP3 SWAP2 SWAP1 PUSH2 0x1BE7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC6A 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 0xC8E SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0xCCD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC4 SWAP1 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9D4AF69323C427453609E945E4119E0A9996A515582708D8866E5609A59E49CF DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0xD15 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP PUSH2 0xD2B PUSH2 0x1439 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xD35 PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x5 ADD DUP1 SLOAD SWAP1 POP DUP3 LT PUSH2 0xDC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDB8 SWAP1 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x5 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xDD9 JUMPI PUSH2 0xDD8 PUSH2 0x1D4D JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x7 MUL ADD SWAP1 POP DUP1 PUSH1 0x6 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xE3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE31 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP PUSH1 0x0 PUSH1 0x3 DUP4 PUSH1 0x0 ADD SLOAD DUP2 SLOAD DUP2 LT PUSH2 0xE59 JUMPI PUSH2 0xE58 PUSH2 0x1D4D JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 ADD SLOAD DUP4 PUSH2 0xEA4 SWAP2 SWAP1 PUSH2 0x204B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x15180 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0xEBB SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 PUSH1 0x1 ADD SLOAD PUSH2 0xECD SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0xEF9 JUMPI DUP1 DUP6 PUSH1 0x1 ADD SLOAD PUSH2 0xEE4 SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x2 ADD SLOAD DUP5 PUSH2 0xEF6 SWAP2 SWAP1 PUSH2 0x204B JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x4 ADD SLOAD PUSH2 0xF0F SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x15180 DUP5 DUP4 PUSH2 0xF23 SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST PUSH2 0xF2D SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0xF72 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF69 SWAP1 PUSH2 0x20CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP8 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xF86 SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP TIMESTAMP DUP8 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x4 ADD SLOAD DUP8 PUSH1 0x5 ADD SLOAD LT PUSH2 0x10BB JUMPI PUSH1 0x0 DUP8 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 DUP9 PUSH1 0x3 ADD SLOAD PUSH2 0xFD4 SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1033 SWAP3 SWAP2 SWAP1 PUSH2 0x1BE7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1052 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 0x1076 SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0x10B5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10AC SWAP1 PUSH2 0x2137 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0x119B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1118 SWAP3 SWAP2 SWAP1 PUSH2 0x1BE7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1137 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 0x115B SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST PUSH2 0x119A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1191 SWAP1 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6A2CBFD0A4E37B7DACE5DEC7CF930020420C1AA4CA495BBF4972D9FD614ECC3B DUP3 PUSH1 0x40 MLOAD PUSH2 0x11E1 SWAP2 SWAP1 PUSH2 0x195A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP PUSH2 0x11F9 PUSH2 0x1439 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1204 PUSH2 0x12A8 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1276 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x126D SWAP2 SWAP1 PUSH2 0x187A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x127F DUP2 PUSH2 0x132F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x12B0 PUSH2 0x17D3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x12CE PUSH2 0x4B5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x132D JUMPI PUSH2 0x12F1 PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1324 SWAP2 SWAP1 PUSH2 0x187A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD SUB PUSH2 0x142F JUMPI PUSH1 0x40 MLOAD PUSH32 0x3EE5AEB500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x5 DUP2 LT ISZERO PUSH2 0x1669 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB ISZERO PUSH2 0x1669 JUMPI PUSH1 0x0 PUSH1 0x64 PUSH1 0x5 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1502 JUMPI PUSH2 0x1501 PUSH2 0x1D4D JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH2 0x1518 SWAP2 SWAP1 PUSH2 0x1DE2 JUMP JUMPDEST PUSH2 0x1522 SWAP2 SWAP1 PUSH2 0x1E53 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1576 SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB1DA5BD041C3A852A00414E52DA5F60612375ABEE4E87C90003BE773E8DC5C8D DUP4 PUSH1 0x1 DUP7 PUSH2 0x15DA SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E8 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 POP POP DUP1 DUP1 PUSH2 0x1661 SWAP1 PUSH2 0x2157 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x14AC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17CE JUMPI DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x175D SWAP2 SWAP1 PUSH2 0x1EAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x16D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180B DUP3 PUSH2 0x17E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x181B DUP2 PUSH2 0x1800 JUMP JUMPDEST DUP2 EQ PUSH2 0x1826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1838 DUP2 PUSH2 0x1812 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1854 JUMPI PUSH2 0x1853 PUSH2 0x17DB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1862 DUP5 DUP3 DUP6 ADD PUSH2 0x1829 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1874 DUP2 PUSH2 0x1800 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x188F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18A8 DUP2 PUSH2 0x1895 JUMP JUMPDEST DUP2 EQ PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18C5 DUP2 PUSH2 0x189F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18E1 JUMPI PUSH2 0x18E0 PUSH2 0x17DB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18EF DUP5 DUP3 DUP6 ADD PUSH2 0x18B6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1901 DUP2 PUSH2 0x1895 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x191C PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1929 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1936 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1943 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1950 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x196F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x198A PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1997 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x19A4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19D1 PUSH2 0x19CC PUSH2 0x19C7 DUP5 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x19AC JUMP JUMPDEST PUSH2 0x17E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19E3 DUP3 PUSH2 0x19B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19F5 DUP3 PUSH2 0x19D8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A05 DUP2 PUSH2 0x19EA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A20 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x19FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416C726561647920726567697374657265640000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A6D PUSH1 0x12 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A78 DUP3 PUSH2 0x1A37 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1A9C DUP2 PUSH2 0x1A60 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x43616E6E6F7420726566657220796F757273656C660000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AD9 PUSH1 0x15 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AE4 DUP3 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B08 DUP2 PUSH2 0x1ACC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C69642075706C696E65000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B45 PUSH1 0xE DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B50 DUP3 PUSH2 0x1B0F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B74 DUP2 PUSH2 0x1B38 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F20626F6E757320746F207769746864726177000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BB1 PUSH1 0x14 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1BBC DUP3 PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1BE0 DUP2 PUSH2 0x1BA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BFC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1C09 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C25 DUP2 PUSH2 0x1C10 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C42 DUP2 PUSH2 0x1C1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C5E JUMPI PUSH2 0x1C5D PUSH2 0x17DB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C6C DUP5 DUP3 DUP6 ADD PUSH2 0x1C33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CAB PUSH1 0xF DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CB6 DUP3 PUSH2 0x1C75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1CDA DUP2 PUSH2 0x1C9E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C6964207061636B6167650000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D17 PUSH1 0xF DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D22 DUP3 PUSH2 0x1CE1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1D46 DUP2 PUSH2 0x1D0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1D91 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1D9E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1DAB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DED DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DF8 DUP4 PUSH2 0x1895 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1E06 DUP2 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1E1D JUMPI PUSH2 0x1E1C PUSH2 0x1DB3 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E5E DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E69 DUP4 PUSH2 0x1895 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1E79 JUMPI PUSH2 0x1E78 PUSH2 0x1E24 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x18F8 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x18F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB8 DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EC3 DUP4 PUSH2 0x1895 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EDB JUMPI PUSH2 0x1EDA PUSH2 0x1DB3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x546172676574206E6F742072656163686564206F72206C6576656C20616C7265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x61647920636C61696D6564000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F3D PUSH1 0x2B DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F48 DUP3 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F6C DUP2 PUSH2 0x1F30 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C6964207374616B6520696E64657800000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FA9 PUSH1 0x13 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x1FB4 DUP3 PUSH2 0x1F73 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1FD8 DUP2 PUSH2 0x1F9C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5374616B65206E6F742061637469766500000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2015 PUSH1 0x10 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x2020 DUP3 PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2044 DUP2 PUSH2 0x2008 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2056 DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH2 0x2061 DUP4 PUSH2 0x1895 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2079 JUMPI PUSH2 0x2078 PUSH2 0x1DB3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E6F2070726F66697420746F20636C61696D2079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20B5 PUSH1 0x16 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x20C0 DUP3 PUSH2 0x207F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x20E4 DUP2 PUSH2 0x20A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x46696E616C207472616E73666572206661696C65640000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2121 PUSH1 0x15 DUP4 PUSH2 0x1A26 JUMP JUMPDEST SWAP2 POP PUSH2 0x212C DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2150 DUP2 PUSH2 0x2114 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2162 DUP3 PUSH2 0x1895 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2194 JUMPI PUSH2 0x2193 PUSH2 0x1DB3 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E BALANCE 0xC5 0xCC SWAP14 EXTCODEHASH 0xE1 LOG2 LOG1 0xD SWAP1 SWAP7 DUP2 JUMPI PUSH11 0x781172BAB970FF37A74BDE 0xF6 0x21 PUSH25 0x75771664736F6C634300081400330000000000000000000000 ","sourceMap":"236:6864:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2062:345;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:101:0;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5693:322:7;;;:::i;:::-;;2415:905;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;981:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;1025:54;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;949:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;6023:1074;;;:::i;:::-;;4192:1493;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;291:22:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2062:345;2161:1;2125:38;;:5;:17;2131:10;2125:17;;;;;;;;;;;;;;;:24;;;;;;;;;;;;:38;;;2117:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;2216:10;2205:21;;:7;:21;;;2197:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2302:1;2271:5;:14;2277:7;2271:14;;;;;;;;;;;;;;;:21;;:28;;;;:32;:54;;;;2318:7;:5;:7::i;:::-;2307:18;;:7;:18;;;2271:54;2263:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;2392:7;2365:5;:17;2371:10;2365:17;;;;;;;;;;;;;;;:24;;;:34;;;;;;;;;;;;;;;;;;2062:345;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;5693:322:7:-;2500:21:6;:19;:21::i;:::-;5759:14:7::1;5776:5;:17;5782:10;5776:17;;;;;;;;;;;;;;;:38;;;5759:55;;5842:1;5833:6;:10;5825:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;5930:1;5889:5;:17;5895:10;5889:17;;;;;;;;;;;;;;;:38;;:42;;;;5950:8;;;;;;;;;;;:17;;;5968:10;5980:6;5950:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5942:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5748:267;2542:20:6::0;:18;:20::i;:::-;5693:322:7:o;2415:905::-;2500:21:6;:19;:21::i;:::-;2510:8:7::1;:15;;;;2494:13;:31;2486:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;2556:18;2577:8;2586:13;2577:23;;;;;;;;:::i;:::-;;;;;;;;;;;;2556:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;2629:8;;;;;;;;;;;:21;;;2651:10;2671:4;2678:3;:10;;;2629:60;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2621:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;2722:19;2787:3;2758;:25;;;2745:3;:10;;;:38;;;;:::i;:::-;2744:46;;;;:::i;:::-;2722:68;;2811:5;:17;2817:10;2811:17;;;;;;;;;;;;;;;:24;;2841:291;;;;;;;;2880:13;2841:291;;;;2919:15;2841:291;;;;2964:15;2841:291;;;;3002:3;:10;;;2841:291;;;;3049:11;2841:291;;;;3090:1;2841:291;;;;3116:4;2841:291;;;;::::0;2811:322:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3146:48;3171:10;3183:3;:10;;;3146:24;:48::i;:::-;3205:44;3226:10;3238:3;:10;;;3205:20;:44::i;:::-;3274:10;3267:45;;;3286:13;3301:3;:10;;;3267:45;;;;;;;:::i;:::-;;;;;;;;2475:845;;2542:20:6::0;:18;:20::i;:::-;2415:905:7;:::o;981:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1025:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;949:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6023:1074::-;2500:21:6;:19;:21::i;:::-;6085:17:7::1;6105:5;:17;6111:10;6105:17;;;;;;;;;;;;;;;6085:37;;6133:16;6152:4;:18;;;6133:37;;6181:20;6204:4;:24;;;6181:47;;6239:23;6277:17:::0;6312:1:::1;6297:12;:16;;;;:::i;:::-;6277:36;;6343:1;6330:9;:14;:43;;;;;6360:13;6348:8;:25;;6330:43;6326:486;;;6408:1;6390:19;;6326:486;;;6444:1;6431:9;:14;:43;;;;;6461:13;6449:8;:25;;6431:43;6427:385;;;6509:1;6491:19;;6427:385;;;6545:1;6532:9;:14;:43;;;;;6562:13;6550:8;:25;;6532:43;6528:284;;;6610:1;6592:19;;6528:284;;;6646:1;6633:9;:14;:44;;;;;6663:14;6651:8;:26;;6633:44;6629:183;;;6712:2;6694:20;;6629:183;;;6747:53;;;;;;;;;;:::i;:::-;;;;;;;;6629:183;6528:284;6427:385;6326:486;6824:19;6877:3;6858:15;6847:8;:26;;;;:::i;:::-;6846:34;;;;:::i;:::-;6824:56;;6918:9;6891:4;:24;;:36;;;;6956:8;;;;;;;;;;;:17;;;6974:10;6986:11;6956:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6948:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7054:10;7034:55;;;7066:11;7079:9;7034:55;;;;;;;:::i;:::-;;;;;;;;6074:1023;;;;;;2542:20:6::0;:18;:20::i;:::-;6023:1074:7:o;4192:1493::-;2500:21:6;:19;:21::i;:::-;4267:17:7::1;4287:5;:17;4293:10;4287:17;;;;;;;;;;;;;;;4267:37;;4337:4;:11;;:18;;;;4323:11;:32;4315:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4390:19;4412:4;:11;;4424;4412:24;;;;;;;;:::i;:::-;;;;;;;;;;;;4390:46;;4455:1;:10;;;;;;;;;;;;4447:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;4499:19;4521:15;4499:37;;4547:18;4568:8;4577:1;:14;;;4568:24;;;;;;;;:::i;:::-;;;;;;;;;;;;4547:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;4613:19;4649:1;:15;;;4635:11;:29;;;;:::i;:::-;4613:51;;4675:21;4714:6;4699:3;:12;;;:21;;;;:::i;:::-;4675:45;;4773:13;4759:1;:11;;;:27;;;;:::i;:::-;4745:11;:41;4741:173;;;4831:13;4817:1;:11;;;:27;;;;:::i;:::-;4803:41;;4887:1;:15;;;4873:11;:29;;;;:::i;:::-;4859:43;;4741:173;4926:19;4973:3;:12;;;4948:1;:22;;;:37;;;;:::i;:::-;4926:59;;4996:21;5050:6;5035:11;5021;:25;;;;:::i;:::-;5020:36;;;;:::i;:::-;4996:60;;5093:1;5077:13;:17;5069:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;5153:13;5134:1;:15;;;:32;;;;;;;:::i;:::-;;;;;;;;5195:15;5177:1;:15;;:33;;;;5246:1;:22;;;5227:1;:15;;;:41;5223:397;;5298:5;5285:1;:10;;;:18;;;;;;;;;;;;;;;;;;5366:19;5399:13;5388:1;:8;;;:24;;;;:::i;:::-;5366:46;;5435:8;;;;;;;;;;;:17;;;5453:10;5465:11;5435:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5427:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;5270:245;5223:397;;;5544:8;;;;;;;;;;;:17;;;5562:10;5574:13;5544:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5536:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5223:397;5651:10;5637:40;;;5663:13;5637:40;;;;;;:::i;:::-;;;;;;;;4256:1429;;;;;;;;2542:20:6::0;:18;:20::i;:::-;4192:1493:7;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;291:22:7:-;;;;;;;;;;;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;2575:307:6:-;1899:1;2702:7;;:18;2698:86;;2743:30;;;;;;;;;;;;;;2698:86;1899:1;2858:7;:17;;;;2575:307::o;2888:208::-;1857:1;3068:7;:21;;;;2888:208::o;3328:539:7:-;3414:21;3438:5;:12;3444:5;3438:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;3414:43;;3473:9;3468:392;3492:1;3488;:5;3468:392;;;3544:1;3519:27;;:13;:27;;;3515:38;3548:5;3515:38;3582:13;3635:3;3609:19;3629:1;3609:22;;;;;;;;:::i;:::-;;;;;;;;;;3599:7;:32;;;;:::i;:::-;3598:40;;;;:::i;:::-;3582:56;;3698:5;3653;:20;3659:13;3653:20;;;;;;;;;;;;;;;:41;;;:50;;;;;;;:::i;:::-;;;;;;;;3770:5;3737:53;;3755:13;3737:53;;;3777:5;3788:1;3784;:5;;;;:::i;:::-;3737:53;;;;;;;:::i;:::-;;;;;;;;3821:5;:20;3827:13;3821:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;3805:43;;3500:360;3495:3;;;;;:::i;:::-;;;;3468:392;;;;3403:464;3328:539;;:::o;3875:309::-;3957:21;3981:5;:12;3987:5;3981:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;3957:43;;4011:166;4043:1;4018:27;;:13;:27;;;4011:166;;4100:7;4062:5;:20;4068:13;4062:20;;;;;;;;;;;;;;;:34;;;:45;;;;;;;:::i;:::-;;;;;;;;4138:5;:20;4144:13;4138:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;4122:43;;4011:166;;;3946:238;3875:309;;:::o;656:96:5:-;709:7;735:10;728:17;;656:96;:::o;88:117:9:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:222::-;1393:4;1431:2;1420:9;1416:18;1408:26;;1444:71;1512:1;1501:9;1497:17;1488:6;1444:71;:::i;:::-;1300:222;;;;:::o;1528:77::-;1565:7;1594:5;1583:16;;1528:77;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:118::-;2306:24;2324:5;2306:24;:::i;:::-;2301:3;2294:37;2219:118;;:::o;2343:664::-;2548:4;2586:3;2575:9;2571:19;2563:27;;2600:71;2668:1;2657:9;2653:17;2644:6;2600:71;:::i;:::-;2681:72;2749:2;2738:9;2734:18;2725:6;2681:72;:::i;:::-;2763;2831:2;2820:9;2816:18;2807:6;2763:72;:::i;:::-;2845;2913:2;2902:9;2898:18;2889:6;2845:72;:::i;:::-;2927:73;2995:3;2984:9;2980:19;2971:6;2927:73;:::i;:::-;2343:664;;;;;;;;:::o;3013:222::-;3106:4;3144:2;3133:9;3129:18;3121:26;;3157:71;3225:1;3214:9;3210:17;3201:6;3157:71;:::i;:::-;3013:222;;;;:::o;3241:442::-;3390:4;3428:2;3417:9;3413:18;3405:26;;3441:71;3509:1;3498:9;3494:17;3485:6;3441:71;:::i;:::-;3522:72;3590:2;3579:9;3575:18;3566:6;3522:72;:::i;:::-;3604;3672:2;3661:9;3657:18;3648:6;3604:72;:::i;:::-;3241:442;;;;;;:::o;3689:60::-;3717:3;3738:5;3731:12;;3689:60;;;:::o;3755:142::-;3805:9;3838:53;3856:34;3865:24;3883:5;3865:24;:::i;:::-;3856:34;:::i;:::-;3838:53;:::i;:::-;3825:66;;3755:142;;;:::o;3903:126::-;3953:9;3986:37;4017:5;3986:37;:::i;:::-;3973:50;;3903:126;;;:::o;4035:140::-;4099:9;4132:37;4163:5;4132:37;:::i;:::-;4119:50;;4035:140;;;:::o;4181:159::-;4282:51;4327:5;4282:51;:::i;:::-;4277:3;4270:64;4181:159;;:::o;4346:250::-;4453:4;4491:2;4480:9;4476:18;4468:26;;4504:85;4586:1;4575:9;4571:17;4562:6;4504:85;:::i;:::-;4346:250;;;;:::o;4602:169::-;4686:11;4720:6;4715:3;4708:19;4760:4;4755:3;4751:14;4736:29;;4602:169;;;;:::o;4777:168::-;4917:20;4913:1;4905:6;4901:14;4894:44;4777:168;:::o;4951:366::-;5093:3;5114:67;5178:2;5173:3;5114:67;:::i;:::-;5107:74;;5190:93;5279:3;5190:93;:::i;:::-;5308:2;5303:3;5299:12;5292:19;;4951:366;;;:::o;5323:419::-;5489:4;5527:2;5516:9;5512:18;5504:26;;5576:9;5570:4;5566:20;5562:1;5551:9;5547:17;5540:47;5604:131;5730:4;5604:131;:::i;:::-;5596:139;;5323:419;;;:::o;5748:171::-;5888:23;5884:1;5876:6;5872:14;5865:47;5748:171;:::o;5925:366::-;6067:3;6088:67;6152:2;6147:3;6088:67;:::i;:::-;6081:74;;6164:93;6253:3;6164:93;:::i;:::-;6282:2;6277:3;6273:12;6266:19;;5925:366;;;:::o;6297:419::-;6463:4;6501:2;6490:9;6486:18;6478:26;;6550:9;6544:4;6540:20;6536:1;6525:9;6521:17;6514:47;6578:131;6704:4;6578:131;:::i;:::-;6570:139;;6297:419;;;:::o;6722:164::-;6862:16;6858:1;6850:6;6846:14;6839:40;6722:164;:::o;6892:366::-;7034:3;7055:67;7119:2;7114:3;7055:67;:::i;:::-;7048:74;;7131:93;7220:3;7131:93;:::i;:::-;7249:2;7244:3;7240:12;7233:19;;6892:366;;;:::o;7264:419::-;7430:4;7468:2;7457:9;7453:18;7445:26;;7517:9;7511:4;7507:20;7503:1;7492:9;7488:17;7481:47;7545:131;7671:4;7545:131;:::i;:::-;7537:139;;7264:419;;;:::o;7689:170::-;7829:22;7825:1;7817:6;7813:14;7806:46;7689:170;:::o;7865:366::-;8007:3;8028:67;8092:2;8087:3;8028:67;:::i;:::-;8021:74;;8104:93;8193:3;8104:93;:::i;:::-;8222:2;8217:3;8213:12;8206:19;;7865:366;;;:::o;8237:419::-;8403:4;8441:2;8430:9;8426:18;8418:26;;8490:9;8484:4;8480:20;8476:1;8465:9;8461:17;8454:47;8518:131;8644:4;8518:131;:::i;:::-;8510:139;;8237:419;;;:::o;8662:332::-;8783:4;8821:2;8810:9;8806:18;8798:26;;8834:71;8902:1;8891:9;8887:17;8878:6;8834:71;:::i;:::-;8915:72;8983:2;8972:9;8968:18;8959:6;8915:72;:::i;:::-;8662:332;;;;;:::o;9000:90::-;9034:7;9077:5;9070:13;9063:21;9052:32;;9000:90;;;:::o;9096:116::-;9166:21;9181:5;9166:21;:::i;:::-;9159:5;9156:32;9146:60;;9202:1;9199;9192:12;9146:60;9096:116;:::o;9218:137::-;9272:5;9303:6;9297:13;9288:22;;9319:30;9343:5;9319:30;:::i;:::-;9218:137;;;;:::o;9361:345::-;9428:6;9477:2;9465:9;9456:7;9452:23;9448:32;9445:119;;;9483:79;;:::i;:::-;9445:119;9603:1;9628:61;9681:7;9672:6;9661:9;9657:22;9628:61;:::i;:::-;9618:71;;9574:125;9361:345;;;;:::o;9712:165::-;9852:17;9848:1;9840:6;9836:14;9829:41;9712:165;:::o;9883:366::-;10025:3;10046:67;10110:2;10105:3;10046:67;:::i;:::-;10039:74;;10122:93;10211:3;10122:93;:::i;:::-;10240:2;10235:3;10231:12;10224:19;;9883:366;;;:::o;10255:419::-;10421:4;10459:2;10448:9;10444:18;10436:26;;10508:9;10502:4;10498:20;10494:1;10483:9;10479:17;10472:47;10536:131;10662:4;10536:131;:::i;:::-;10528:139;;10255:419;;;:::o;10680:165::-;10820:17;10816:1;10808:6;10804:14;10797:41;10680:165;:::o;10851:366::-;10993:3;11014:67;11078:2;11073:3;11014:67;:::i;:::-;11007:74;;11090:93;11179:3;11090:93;:::i;:::-;11208:2;11203:3;11199:12;11192:19;;10851:366;;;:::o;11223:419::-;11389:4;11427:2;11416:9;11412:18;11404:26;;11476:9;11470:4;11466:20;11462:1;11451:9;11447:17;11440:47;11504:131;11630:4;11504:131;:::i;:::-;11496:139;;11223:419;;;:::o;11648:180::-;11696:77;11693:1;11686:88;11793:4;11790:1;11783:15;11817:4;11814:1;11807:15;11834:442;11983:4;12021:2;12010:9;12006:18;11998:26;;12034:71;12102:1;12091:9;12087:17;12078:6;12034:71;:::i;:::-;12115:72;12183:2;12172:9;12168:18;12159:6;12115:72;:::i;:::-;12197;12265:2;12254:9;12250:18;12241:6;12197:72;:::i;:::-;11834:442;;;;;;:::o;12282:180::-;12330:77;12327:1;12320:88;12427:4;12424:1;12417:15;12451:4;12448:1;12441:15;12468:410;12508:7;12531:20;12549:1;12531:20;:::i;:::-;12526:25;;12565:20;12583:1;12565:20;:::i;:::-;12560:25;;12620:1;12617;12613:9;12642:30;12660:11;12642:30;:::i;:::-;12631:41;;12821:1;12812:7;12808:15;12805:1;12802:22;12782:1;12775:9;12755:83;12732:139;;12851:18;;:::i;:::-;12732:139;12516:362;12468:410;;;;:::o;12884:180::-;12932:77;12929:1;12922:88;13029:4;13026:1;13019:15;13053:4;13050:1;13043:15;13070:185;13110:1;13127:20;13145:1;13127:20;:::i;:::-;13122:25;;13161:20;13179:1;13161:20;:::i;:::-;13156:25;;13200:1;13190:35;;13205:18;;:::i;:::-;13190:35;13247:1;13244;13240:9;13235:14;;13070:185;;;;:::o;13261:332::-;13382:4;13420:2;13409:9;13405:18;13397:26;;13433:71;13501:1;13490:9;13486:17;13477:6;13433:71;:::i;:::-;13514:72;13582:2;13571:9;13567:18;13558:6;13514:72;:::i;:::-;13261:332;;;;;:::o;13599:191::-;13639:3;13658:20;13676:1;13658:20;:::i;:::-;13653:25;;13692:20;13710:1;13692:20;:::i;:::-;13687:25;;13735:1;13732;13728:9;13721:16;;13756:3;13753:1;13750:10;13747:36;;;13763:18;;:::i;:::-;13747:36;13599:191;;;;:::o;13796:230::-;13936:34;13932:1;13924:6;13920:14;13913:58;14005:13;14000:2;13992:6;13988:15;13981:38;13796:230;:::o;14032:366::-;14174:3;14195:67;14259:2;14254:3;14195:67;:::i;:::-;14188:74;;14271:93;14360:3;14271:93;:::i;:::-;14389:2;14384:3;14380:12;14373:19;;14032:366;;;:::o;14404:419::-;14570:4;14608:2;14597:9;14593:18;14585:26;;14657:9;14651:4;14647:20;14643:1;14632:9;14628:17;14621:47;14685:131;14811:4;14685:131;:::i;:::-;14677:139;;14404:419;;;:::o;14829:169::-;14969:21;14965:1;14957:6;14953:14;14946:45;14829:169;:::o;15004:366::-;15146:3;15167:67;15231:2;15226:3;15167:67;:::i;:::-;15160:74;;15243:93;15332:3;15243:93;:::i;:::-;15361:2;15356:3;15352:12;15345:19;;15004:366;;;:::o;15376:419::-;15542:4;15580:2;15569:9;15565:18;15557:26;;15629:9;15623:4;15619:20;15615:1;15604:9;15600:17;15593:47;15657:131;15783:4;15657:131;:::i;:::-;15649:139;;15376:419;;;:::o;15801:166::-;15941:18;15937:1;15929:6;15925:14;15918:42;15801:166;:::o;15973:366::-;16115:3;16136:67;16200:2;16195:3;16136:67;:::i;:::-;16129:74;;16212:93;16301:3;16212:93;:::i;:::-;16330:2;16325:3;16321:12;16314:19;;15973:366;;;:::o;16345:419::-;16511:4;16549:2;16538:9;16534:18;16526:26;;16598:9;16592:4;16588:20;16584:1;16573:9;16569:17;16562:47;16626:131;16752:4;16626:131;:::i;:::-;16618:139;;16345:419;;;:::o;16770:194::-;16810:4;16830:20;16848:1;16830:20;:::i;:::-;16825:25;;16864:20;16882:1;16864:20;:::i;:::-;16859:25;;16908:1;16905;16901:9;16893:17;;16932:1;16926:4;16923:11;16920:37;;;16937:18;;:::i;:::-;16920:37;16770:194;;;;:::o;16970:172::-;17110:24;17106:1;17098:6;17094:14;17087:48;16970:172;:::o;17148:366::-;17290:3;17311:67;17375:2;17370:3;17311:67;:::i;:::-;17304:74;;17387:93;17476:3;17387:93;:::i;:::-;17505:2;17500:3;17496:12;17489:19;;17148:366;;;:::o;17520:419::-;17686:4;17724:2;17713:9;17709:18;17701:26;;17773:9;17767:4;17763:20;17759:1;17748:9;17744:17;17737:47;17801:131;17927:4;17801:131;:::i;:::-;17793:139;;17520:419;;;:::o;17945:171::-;18085:23;18081:1;18073:6;18069:14;18062:47;17945:171;:::o;18122:366::-;18264:3;18285:67;18349:2;18344:3;18285:67;:::i;:::-;18278:74;;18361:93;18450:3;18361:93;:::i;:::-;18479:2;18474:3;18470:12;18463:19;;18122:366;;;:::o;18494:419::-;18660:4;18698:2;18687:9;18683:18;18675:26;;18747:9;18741:4;18737:20;18733:1;18722:9;18718:17;18711:47;18775:131;18901:4;18775:131;:::i;:::-;18767:139;;18494:419;;;:::o;18919:233::-;18958:3;18981:24;18999:5;18981:24;:::i;:::-;18972:33;;19027:66;19020:5;19017:77;19014:103;;19097:18;;:::i;:::-;19014:103;19144:1;19137:5;19133:13;19126:20;;18919:233;;;:::o"},"methodIdentifiers":{"claimManagerBonus()":"cad4ea19","claimProfit(uint256)":"d22dee48","kdnToken()":"f6392595","owner()":"8da5cb5b","packages(uint256)":"c216212a","referralPercentages(uint256)":"b662abf5","register(address)":"4420e486","renounceOwnership()":"715018a6","stake(uint256)":"a694fc3a","transferOwnership(address)":"f2fde38b","users(address)":"a87430ba","withdrawReferralBonus()":"91ca7f3c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_kdnToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"name\":\"ManagerBonusClaimed\",\"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\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProfitClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"upline\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"downline\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"name\":\"ReferralBonusPaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"packageIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"claimManagerBonus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_stakeIndex\",\"type\":\"uint256\"}],\"name\":\"claimProfit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kdnToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"packages\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalProfitPercentage\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"referralPercentages\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_upline\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_packageIndex\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"users\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"upline\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"referralBonusBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"managerBonusBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"groupTurnover\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentManagerLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawReferralBonus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"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. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling 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/KDNStaking.sol\":\"KDNStaking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"contracts/KDNStaking.sol\":{\"keccak256\":\"0xf28120ec8c28cebec5c46b077191920759272ede409b9b3f31a2d51888239a71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64e6265ec2b937f4b86979d7e19e980b95544249fa6c8a2e1b5bd8057e309506\",\"dweb:/ipfs/Qmc3NDjBfdLk1LyfSQZgr2CqiuDwPoamYAVoDophnS2Qyg\"]}},\"version\":1}"}},"contracts/KDNToken.sol":{"KDNToken":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"account","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_1846":{"entryPoint":null,"id":1846,"parameterSlots":0,"returnSlots":0},"@_336":{"entryPoint":null,"id":336,"parameterSlots":2,"returnSlots":0},"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_mint_639":{"entryPoint":576,"id":639,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":369,"id":146,"parameterSlots":1,"returnSlots":0},"@_update_606":{"entryPoint":717,"id":606,"parameterSlots":3,"returnSlots":0},"@decimals_363":{"entryPoint":567,"id":363,"parameterSlots":0,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2194,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2855,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2211,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":2872,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2933,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":1435,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":1277,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2796,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2300,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":2640,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2391,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2721,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":1756,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":2174,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2142,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":1571,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":2627,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":1717,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":1591,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":1911,"id":null,"parameterSlots":2,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":1456,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":1382,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":1881,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":1581,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":1849,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":2240,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":1335,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1288,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":1631,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":1472,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":2287,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":1836,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":1689,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":1485,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":1641,"id":null,"parameterSlots":3,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":1684,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:9836:9","statements":[{"body":{"nodeType":"YulBlock","src":"66:40:9","statements":[{"nodeType":"YulAssignment","src":"77:22:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"87:5:9"},"nodeType":"YulFunctionCall","src":"87:12:9"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"77:6:9"}]}]},"name":"array_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"49:5:9","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"59:6:9","type":""}],"src":"7:99:9"},{"body":{"nodeType":"YulBlock","src":"140:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"157:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"160:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"150:6:9"},"nodeType":"YulFunctionCall","src":"150:88:9"},"nodeType":"YulExpressionStatement","src":"150:88:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"254:1:9","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"257:4:9","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"247:6:9"},"nodeType":"YulFunctionCall","src":"247:15:9"},"nodeType":"YulExpressionStatement","src":"247:15:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"278:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"281:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"271:6:9"},"nodeType":"YulFunctionCall","src":"271:15:9"},"nodeType":"YulExpressionStatement","src":"271:15:9"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"112:180:9"},{"body":{"nodeType":"YulBlock","src":"326:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"343:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"346:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"336:6:9"},"nodeType":"YulFunctionCall","src":"336:88:9"},"nodeType":"YulExpressionStatement","src":"336:88:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:9","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"443:4:9","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"433:6:9"},"nodeType":"YulFunctionCall","src":"433:15:9"},"nodeType":"YulExpressionStatement","src":"433:15:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"464:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"467:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"457:6:9"},"nodeType":"YulFunctionCall","src":"457:15:9"},"nodeType":"YulExpressionStatement","src":"457:15:9"}]},"name":"panic_error_0x22","nodeType":"YulFunctionDefinition","src":"298:180:9"},{"body":{"nodeType":"YulBlock","src":"535:269:9","statements":[{"nodeType":"YulAssignment","src":"545:22:9","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"559:4:9"},{"kind":"number","nodeType":"YulLiteral","src":"565:1:9","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"555:3:9"},"nodeType":"YulFunctionCall","src":"555:12:9"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"545:6:9"}]},{"nodeType":"YulVariableDeclaration","src":"576:38:9","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"606:4:9"},{"kind":"number","nodeType":"YulLiteral","src":"612:1:9","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"602:3:9"},"nodeType":"YulFunctionCall","src":"602:12:9"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"580:18:9","type":""}]},{"body":{"nodeType":"YulBlock","src":"653:51:9","statements":[{"nodeType":"YulAssignment","src":"667:27:9","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"681:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"689:4:9","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"677:3:9"},"nodeType":"YulFunctionCall","src":"677:17:9"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"667:6:9"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"633:18:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"626:6:9"},"nodeType":"YulFunctionCall","src":"626:26:9"},"nodeType":"YulIf","src":"623:81:9"},{"body":{"nodeType":"YulBlock","src":"756:42:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nodeType":"YulIdentifier","src":"770:16:9"},"nodeType":"YulFunctionCall","src":"770:18:9"},"nodeType":"YulExpressionStatement","src":"770:18:9"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"720:18:9"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"743:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"751:2:9","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"740:2:9"},"nodeType":"YulFunctionCall","src":"740:14:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"717:2:9"},"nodeType":"YulFunctionCall","src":"717:38:9"},"nodeType":"YulIf","src":"714:84:9"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"519:4:9","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"528:6:9","type":""}],"src":"484:320:9"},{"body":{"nodeType":"YulBlock","src":"864:87:9","statements":[{"nodeType":"YulAssignment","src":"874:11:9","value":{"name":"ptr","nodeType":"YulIdentifier","src":"882:3:9"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"874:4:9"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"902:1:9","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"905:3:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"895:6:9"},"nodeType":"YulFunctionCall","src":"895:14:9"},"nodeType":"YulExpressionStatement","src":"895:14:9"},{"nodeType":"YulAssignment","src":"918:26:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:4:9","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"926:9:9"},"nodeType":"YulFunctionCall","src":"926:18:9"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"918:4:9"}]}]},"name":"array_dataslot_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"851:3:9","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"859:4:9","type":""}],"src":"810:141:9"},{"body":{"nodeType":"YulBlock","src":"1001:49:9","statements":[{"nodeType":"YulAssignment","src":"1011:33:9","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1029:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"1036:2:9","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1025:3:9"},"nodeType":"YulFunctionCall","src":"1025:14:9"},{"kind":"number","nodeType":"YulLiteral","src":"1041:2:9","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1021:3:9"},"nodeType":"YulFunctionCall","src":"1021:23:9"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"1011:6:9"}]}]},"name":"divide_by_32_ceil","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"984:5:9","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"994:6:9","type":""}],"src":"957:93:9"},{"body":{"nodeType":"YulBlock","src":"1109:54:9","statements":[{"nodeType":"YulAssignment","src":"1119:37:9","value":{"arguments":[{"name":"bits","nodeType":"YulIdentifier","src":"1144:4:9"},{"name":"value","nodeType":"YulIdentifier","src":"1150:5:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1140:3:9"},"nodeType":"YulFunctionCall","src":"1140:16:9"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"1119:8:9"}]}]},"name":"shift_left_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nodeType":"YulTypedName","src":"1084:4:9","type":""},{"name":"value","nodeType":"YulTypedName","src":"1090:5:9","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"1100:8:9","type":""}],"src":"1056:107:9"},{"body":{"nodeType":"YulBlock","src":"1245:317:9","statements":[{"nodeType":"YulVariableDeclaration","src":"1255:35:9","value":{"arguments":[{"name":"shiftBytes","nodeType":"YulIdentifier","src":"1276:10:9"},{"kind":"number","nodeType":"YulLiteral","src":"1288:1:9","type":"","value":"8"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1272:3:9"},"nodeType":"YulFunctionCall","src":"1272:18:9"},"variables":[{"name":"shiftBits","nodeType":"YulTypedName","src":"1259:9:9","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1299:109:9","value":{"arguments":[{"name":"shiftBits","nodeType":"YulIdentifier","src":"1330:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"1341:66:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nodeType":"YulIdentifier","src":"1311:18:9"},"nodeType":"YulFunctionCall","src":"1311:97:9"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"1303:4:9","type":""}]},{"nodeType":"YulAssignment","src":"1417:51:9","value":{"arguments":[{"name":"shiftBits","nodeType":"YulIdentifier","src":"1448:9:9"},{"name":"toInsert","nodeType":"YulIdentifier","src":"1459:8:9"}],"functionName":{"name":"shift_left_dynamic","nodeType":"YulIdentifier","src":"1429:18:9"},"nodeType":"YulFunctionCall","src":"1429:39:9"},"variableNames":[{"name":"toInsert","nodeType":"YulIdentifier","src":"1417:8:9"}]},{"nodeType":"YulAssignment","src":"1477:30:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1490:5:9"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"1501:4:9"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1497:3:9"},"nodeType":"YulFunctionCall","src":"1497:9:9"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1486:3:9"},"nodeType":"YulFunctionCall","src":"1486:21:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1477:5:9"}]},{"nodeType":"YulAssignment","src":"1516:40:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1529:5:9"},{"arguments":[{"name":"toInsert","nodeType":"YulIdentifier","src":"1540:8:9"},{"name":"mask","nodeType":"YulIdentifier","src":"1550:4:9"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1536:3:9"},"nodeType":"YulFunctionCall","src":"1536:19:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1526:2:9"},"nodeType":"YulFunctionCall","src":"1526:30:9"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"1516:6:9"}]}]},"name":"update_byte_slice_dynamic32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1206:5:9","type":""},{"name":"shiftBytes","nodeType":"YulTypedName","src":"1213:10:9","type":""},{"name":"toInsert","nodeType":"YulTypedName","src":"1225:8:9","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"1238:6:9","type":""}],"src":"1169:393:9"},{"body":{"nodeType":"YulBlock","src":"1613:32:9","statements":[{"nodeType":"YulAssignment","src":"1623:16:9","value":{"name":"value","nodeType":"YulIdentifier","src":"1634:5:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1623:7:9"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1595:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1605:7:9","type":""}],"src":"1568:77:9"},{"body":{"nodeType":"YulBlock","src":"1683:28:9","statements":[{"nodeType":"YulAssignment","src":"1693:12:9","value":{"name":"value","nodeType":"YulIdentifier","src":"1700:5:9"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"1693:3:9"}]}]},"name":"identity","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1669:5:9","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"1679:3:9","type":""}],"src":"1651:60:9"},{"body":{"nodeType":"YulBlock","src":"1777:82:9","statements":[{"nodeType":"YulAssignment","src":"1787:66:9","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1845:5:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1827:17:9"},"nodeType":"YulFunctionCall","src":"1827:24:9"}],"functionName":{"name":"identity","nodeType":"YulIdentifier","src":"1818:8:9"},"nodeType":"YulFunctionCall","src":"1818:34:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1800:17:9"},"nodeType":"YulFunctionCall","src":"1800:53:9"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"1787:9:9"}]}]},"name":"convert_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1757:5:9","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"1767:9:9","type":""}],"src":"1717:142:9"},{"body":{"nodeType":"YulBlock","src":"1912:28:9","statements":[{"nodeType":"YulAssignment","src":"1922:12:9","value":{"name":"value","nodeType":"YulIdentifier","src":"1929:5:9"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"1922:3:9"}]}]},"name":"prepare_store_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1898:5:9","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"1908:3:9","type":""}],"src":"1865:75:9"},{"body":{"nodeType":"YulBlock","src":"2022:193:9","statements":[{"nodeType":"YulVariableDeclaration","src":"2032:63:9","value":{"arguments":[{"name":"value_0","nodeType":"YulIdentifier","src":"2087:7:9"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"2056:30:9"},"nodeType":"YulFunctionCall","src":"2056:39:9"},"variables":[{"name":"convertedValue_0","nodeType":"YulTypedName","src":"2036:16:9","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2111:4:9"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2151:4:9"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2145:5:9"},"nodeType":"YulFunctionCall","src":"2145:11:9"},{"name":"offset","nodeType":"YulIdentifier","src":"2158:6:9"},{"arguments":[{"name":"convertedValue_0","nodeType":"YulIdentifier","src":"2190:16:9"}],"functionName":{"name":"prepare_store_t_uint256","nodeType":"YulIdentifier","src":"2166:23:9"},"nodeType":"YulFunctionCall","src":"2166:41:9"}],"functionName":{"name":"update_byte_slice_dynamic32","nodeType":"YulIdentifier","src":"2117:27:9"},"nodeType":"YulFunctionCall","src":"2117:91:9"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2104:6:9"},"nodeType":"YulFunctionCall","src":"2104:105:9"},"nodeType":"YulExpressionStatement","src":"2104:105:9"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1999:4:9","type":""},{"name":"offset","nodeType":"YulTypedName","src":"2005:6:9","type":""},{"name":"value_0","nodeType":"YulTypedName","src":"2013:7:9","type":""}],"src":"1946:269:9"},{"body":{"nodeType":"YulBlock","src":"2270:24:9","statements":[{"nodeType":"YulAssignment","src":"2280:8:9","value":{"kind":"number","nodeType":"YulLiteral","src":"2287:1:9","type":"","value":"0"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"2280:3:9"}]}]},"name":"zero_value_for_split_t_uint256","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"2266:3:9","type":""}],"src":"2221:73:9"},{"body":{"nodeType":"YulBlock","src":"2353:136:9","statements":[{"nodeType":"YulVariableDeclaration","src":"2363:46:9","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nodeType":"YulIdentifier","src":"2377:30:9"},"nodeType":"YulFunctionCall","src":"2377:32:9"},"variables":[{"name":"zero_0","nodeType":"YulTypedName","src":"2367:6:9","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2462:4:9"},{"name":"offset","nodeType":"YulIdentifier","src":"2468:6:9"},{"name":"zero_0","nodeType":"YulIdentifier","src":"2476:6:9"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"2418:43:9"},"nodeType":"YulFunctionCall","src":"2418:65:9"},"nodeType":"YulExpressionStatement","src":"2418:65:9"}]},"name":"storage_set_to_zero_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2339:4:9","type":""},{"name":"offset","nodeType":"YulTypedName","src":"2345:6:9","type":""}],"src":"2300:189:9"},{"body":{"nodeType":"YulBlock","src":"2545:136:9","statements":[{"body":{"nodeType":"YulBlock","src":"2612:63:9","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2656:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"2663:1:9","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nodeType":"YulIdentifier","src":"2626:29:9"},"nodeType":"YulFunctionCall","src":"2626:39:9"},"nodeType":"YulExpressionStatement","src":"2626:39:9"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2565:5:9"},{"name":"end","nodeType":"YulIdentifier","src":"2572:3:9"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2562:2:9"},"nodeType":"YulFunctionCall","src":"2562:14:9"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2577:26:9","statements":[{"nodeType":"YulAssignment","src":"2579:22:9","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2592:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"2599:1:9","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2588:3:9"},"nodeType":"YulFunctionCall","src":"2588:13:9"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2579:5:9"}]}]},"pre":{"nodeType":"YulBlock","src":"2559:2:9","statements":[]},"src":"2555:120:9"}]},"name":"clear_storage_range_t_bytes1","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"2533:5:9","type":""},{"name":"end","nodeType":"YulTypedName","src":"2540:3:9","type":""}],"src":"2495:186:9"},{"body":{"nodeType":"YulBlock","src":"2766:464:9","statements":[{"body":{"nodeType":"YulBlock","src":"2792:431:9","statements":[{"nodeType":"YulVariableDeclaration","src":"2806:54:9","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2854:5:9"}],"functionName":{"name":"array_dataslot_t_string_storage","nodeType":"YulIdentifier","src":"2822:31:9"},"nodeType":"YulFunctionCall","src":"2822:38:9"},"variables":[{"name":"dataArea","nodeType":"YulTypedName","src":"2810:8:9","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2873:63:9","value":{"arguments":[{"name":"dataArea","nodeType":"YulIdentifier","src":"2896:8:9"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2924:10:9"}],"functionName":{"name":"divide_by_32_ceil","nodeType":"YulIdentifier","src":"2906:17:9"},"nodeType":"YulFunctionCall","src":"2906:29:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2892:3:9"},"nodeType":"YulFunctionCall","src":"2892:44:9"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2877:11:9","type":""}]},{"body":{"nodeType":"YulBlock","src":"3093:27:9","statements":[{"nodeType":"YulAssignment","src":"3095:23:9","value":{"name":"dataArea","nodeType":"YulIdentifier","src":"3110:8:9"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"3095:11:9"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"3077:10:9"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:9","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3074:2:9"},"nodeType":"YulFunctionCall","src":"3074:18:9"},"nodeType":"YulIf","src":"3071:49:9"},{"expression":{"arguments":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"3162:11:9"},{"arguments":[{"name":"dataArea","nodeType":"YulIdentifier","src":"3179:8:9"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3207:3:9"}],"functionName":{"name":"divide_by_32_ceil","nodeType":"YulIdentifier","src":"3189:17:9"},"nodeType":"YulFunctionCall","src":"3189:22:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3175:3:9"},"nodeType":"YulFunctionCall","src":"3175:37:9"}],"functionName":{"name":"clear_storage_range_t_bytes1","nodeType":"YulIdentifier","src":"3133:28:9"},"nodeType":"YulFunctionCall","src":"3133:80:9"},"nodeType":"YulExpressionStatement","src":"3133:80:9"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2783:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"2788:2:9","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2780:2:9"},"nodeType":"YulFunctionCall","src":"2780:11:9"},"nodeType":"YulIf","src":"2777:446:9"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2742:5:9","type":""},{"name":"len","nodeType":"YulTypedName","src":"2749:3:9","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2754:10:9","type":""}],"src":"2687:543:9"},{"body":{"nodeType":"YulBlock","src":"3299:54:9","statements":[{"nodeType":"YulAssignment","src":"3309:37:9","value":{"arguments":[{"name":"bits","nodeType":"YulIdentifier","src":"3334:4:9"},{"name":"value","nodeType":"YulIdentifier","src":"3340:5:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3330:3:9"},"nodeType":"YulFunctionCall","src":"3330:16:9"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"3309:8:9"}]}]},"name":"shift_right_unsigned_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nodeType":"YulTypedName","src":"3274:4:9","type":""},{"name":"value","nodeType":"YulTypedName","src":"3280:5:9","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"3290:8:9","type":""}],"src":"3236:117:9"},{"body":{"nodeType":"YulBlock","src":"3410:118:9","statements":[{"nodeType":"YulVariableDeclaration","src":"3420:68:9","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3469:1:9","type":"","value":"8"},{"name":"bytes","nodeType":"YulIdentifier","src":"3472:5:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3465:3:9"},"nodeType":"YulFunctionCall","src":"3465:13:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3484:1:9","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3480:3:9"},"nodeType":"YulFunctionCall","src":"3480:6:9"}],"functionName":{"name":"shift_right_unsigned_dynamic","nodeType":"YulIdentifier","src":"3436:28:9"},"nodeType":"YulFunctionCall","src":"3436:51:9"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3432:3:9"},"nodeType":"YulFunctionCall","src":"3432:56:9"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"3424:4:9","type":""}]},{"nodeType":"YulAssignment","src":"3497:25:9","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3511:4:9"},{"name":"mask","nodeType":"YulIdentifier","src":"3517:4:9"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3507:3:9"},"nodeType":"YulFunctionCall","src":"3507:15:9"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"3497:6:9"}]}]},"name":"mask_bytes_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"3387:4:9","type":""},{"name":"bytes","nodeType":"YulTypedName","src":"3393:5:9","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"3403:6:9","type":""}],"src":"3359:169:9"},{"body":{"nodeType":"YulBlock","src":"3614:214:9","statements":[{"nodeType":"YulAssignment","src":"3747:37:9","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3774:4:9"},{"name":"len","nodeType":"YulIdentifier","src":"3780:3:9"}],"functionName":{"name":"mask_bytes_dynamic","nodeType":"YulIdentifier","src":"3755:18:9"},"nodeType":"YulFunctionCall","src":"3755:29:9"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"3747:4:9"}]},{"nodeType":"YulAssignment","src":"3793:29:9","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3804:4:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3814:1:9","type":"","value":"2"},{"name":"len","nodeType":"YulIdentifier","src":"3817:3:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3810:3:9"},"nodeType":"YulFunctionCall","src":"3810:11:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3801:2:9"},"nodeType":"YulFunctionCall","src":"3801:21:9"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"3793:4:9"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"3595:4:9","type":""},{"name":"len","nodeType":"YulTypedName","src":"3601:3:9","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"3609:4:9","type":""}],"src":"3533:295:9"},{"body":{"nodeType":"YulBlock","src":"3925:1303:9","statements":[{"nodeType":"YulVariableDeclaration","src":"3936:51:9","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3983:3:9"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"3950:32:9"},"nodeType":"YulFunctionCall","src":"3950:37:9"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"3940:6:9","type":""}]},{"body":{"nodeType":"YulBlock","src":"4072:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4074:16:9"},"nodeType":"YulFunctionCall","src":"4074:18:9"},"nodeType":"YulExpressionStatement","src":"4074:18:9"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"4044:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"4052:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4041:2:9"},"nodeType":"YulFunctionCall","src":"4041:30:9"},"nodeType":"YulIf","src":"4038:56:9"},{"nodeType":"YulVariableDeclaration","src":"4104:52:9","value":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4150:4:9"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"4144:5:9"},"nodeType":"YulFunctionCall","src":"4144:11:9"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"4118:25:9"},"nodeType":"YulFunctionCall","src":"4118:38:9"},"variables":[{"name":"oldLen","nodeType":"YulTypedName","src":"4108:6:9","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4249:4:9"},{"name":"oldLen","nodeType":"YulIdentifier","src":"4255:6:9"},{"name":"newLen","nodeType":"YulIdentifier","src":"4263:6:9"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nodeType":"YulIdentifier","src":"4203:45:9"},"nodeType":"YulFunctionCall","src":"4203:67:9"},"nodeType":"YulExpressionStatement","src":"4203:67:9"},{"nodeType":"YulVariableDeclaration","src":"4280:18:9","value":{"kind":"number","nodeType":"YulLiteral","src":"4297:1:9","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"4284:9:9","type":""}]},{"nodeType":"YulAssignment","src":"4308:17:9","value":{"kind":"number","nodeType":"YulLiteral","src":"4321:4:9","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"4308:9:9"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"4372:611:9","statements":[{"nodeType":"YulVariableDeclaration","src":"4386:37:9","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"4405:6:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4417:4:9","type":"","value":"0x1f"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4413:3:9"},"nodeType":"YulFunctionCall","src":"4413:9:9"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4401:3:9"},"nodeType":"YulFunctionCall","src":"4401:22:9"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"4390:7:9","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4437:51:9","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4483:4:9"}],"functionName":{"name":"array_dataslot_t_string_storage","nodeType":"YulIdentifier","src":"4451:31:9"},"nodeType":"YulFunctionCall","src":"4451:37:9"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"4441:6:9","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4501:10:9","value":{"kind":"number","nodeType":"YulLiteral","src":"4510:1:9","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4505:1:9","type":""}]},{"body":{"nodeType":"YulBlock","src":"4569:163:9","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"4594:6:9"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4612:3:9"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4617:9:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4608:3:9"},"nodeType":"YulFunctionCall","src":"4608:19:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4602:5:9"},"nodeType":"YulFunctionCall","src":"4602:26:9"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4587:6:9"},"nodeType":"YulFunctionCall","src":"4587:42:9"},"nodeType":"YulExpressionStatement","src":"4587:42:9"},{"nodeType":"YulAssignment","src":"4646:24:9","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"4660:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"4668:1:9","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4656:3:9"},"nodeType":"YulFunctionCall","src":"4656:14:9"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"4646:6:9"}]},{"nodeType":"YulAssignment","src":"4687:31:9","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"4704:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"4715:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4700:3:9"},"nodeType":"YulFunctionCall","src":"4700:18:9"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"4687:9:9"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4535:1:9"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"4538:7:9"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4532:2:9"},"nodeType":"YulFunctionCall","src":"4532:14:9"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4547:21:9","statements":[{"nodeType":"YulAssignment","src":"4549:17:9","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4558:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"4561:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4554:3:9"},"nodeType":"YulFunctionCall","src":"4554:12:9"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4549:1:9"}]}]},"pre":{"nodeType":"YulBlock","src":"4528:3:9","statements":[]},"src":"4524:208:9"},{"body":{"nodeType":"YulBlock","src":"4768:156:9","statements":[{"nodeType":"YulVariableDeclaration","src":"4786:43:9","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4813:3:9"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4818:9:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4809:3:9"},"nodeType":"YulFunctionCall","src":"4809:19:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4803:5:9"},"nodeType":"YulFunctionCall","src":"4803:26:9"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"4790:9:9","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"4853:6:9"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"4880:9:9"},{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"4895:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"4903:4:9","type":"","value":"0x1f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4891:3:9"},"nodeType":"YulFunctionCall","src":"4891:17:9"}],"functionName":{"name":"mask_bytes_dynamic","nodeType":"YulIdentifier","src":"4861:18:9"},"nodeType":"YulFunctionCall","src":"4861:48:9"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4846:6:9"},"nodeType":"YulFunctionCall","src":"4846:64:9"},"nodeType":"YulExpressionStatement","src":"4846:64:9"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"4751:7:9"},{"name":"newLen","nodeType":"YulIdentifier","src":"4760:6:9"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4748:2:9"},"nodeType":"YulFunctionCall","src":"4748:19:9"},"nodeType":"YulIf","src":"4745:179:9"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4944:4:9"},{"arguments":[{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"4958:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"4966:1:9","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4954:3:9"},"nodeType":"YulFunctionCall","src":"4954:14:9"},{"kind":"number","nodeType":"YulLiteral","src":"4970:1:9","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4950:3:9"},"nodeType":"YulFunctionCall","src":"4950:22:9"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4937:6:9"},"nodeType":"YulFunctionCall","src":"4937:36:9"},"nodeType":"YulExpressionStatement","src":"4937:36:9"}]},"nodeType":"YulCase","src":"4365:618:9","value":{"kind":"number","nodeType":"YulLiteral","src":"4370:1:9","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"5000:222:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5014:14:9","value":{"kind":"number","nodeType":"YulLiteral","src":"5027:1:9","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5018:5:9","type":""}]},{"body":{"nodeType":"YulBlock","src":"5051:67:9","statements":[{"nodeType":"YulAssignment","src":"5069:35:9","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5088:3:9"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"5093:9:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5084:3:9"},"nodeType":"YulFunctionCall","src":"5084:19:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5078:5:9"},"nodeType":"YulFunctionCall","src":"5078:26:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5069:5:9"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"5044:6:9"},"nodeType":"YulIf","src":"5041:77:9"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"5138:4:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5197:5:9"},{"name":"newLen","nodeType":"YulIdentifier","src":"5204:6:9"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"5144:52:9"},"nodeType":"YulFunctionCall","src":"5144:67:9"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"5131:6:9"},"nodeType":"YulFunctionCall","src":"5131:81:9"},"nodeType":"YulExpressionStatement","src":"5131:81:9"}]},"nodeType":"YulCase","src":"4992:230:9","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"4345:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"4353:2:9","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4342:2:9"},"nodeType":"YulFunctionCall","src":"4342:14:9"},"nodeType":"YulSwitch","src":"4335:887:9"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"3914:4:9","type":""},{"name":"src","nodeType":"YulTypedName","src":"3920:3:9","type":""}],"src":"3833:1395:9"},{"body":{"nodeType":"YulBlock","src":"5279:81:9","statements":[{"nodeType":"YulAssignment","src":"5289:65:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5304:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"5311:42:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5300:3:9"},"nodeType":"YulFunctionCall","src":"5300:54:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5289:7:9"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5261:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5271:7:9","type":""}],"src":"5234:126:9"},{"body":{"nodeType":"YulBlock","src":"5411:51:9","statements":[{"nodeType":"YulAssignment","src":"5421:35:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5450:5:9"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"5432:17:9"},"nodeType":"YulFunctionCall","src":"5432:24:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5421:7:9"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5393:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5403:7:9","type":""}],"src":"5366:96:9"},{"body":{"nodeType":"YulBlock","src":"5533:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5550:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5573:5:9"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"5555:17:9"},"nodeType":"YulFunctionCall","src":"5555:24:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5543:6:9"},"nodeType":"YulFunctionCall","src":"5543:37:9"},"nodeType":"YulExpressionStatement","src":"5543:37:9"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5521:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5528:3:9","type":""}],"src":"5468:118:9"},{"body":{"nodeType":"YulBlock","src":"5690:124:9","statements":[{"nodeType":"YulAssignment","src":"5700:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5712:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"5723:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5708:3:9"},"nodeType":"YulFunctionCall","src":"5708:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5700:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5780:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5793:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"5804:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5789:3:9"},"nodeType":"YulFunctionCall","src":"5789:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"5736:43:9"},"nodeType":"YulFunctionCall","src":"5736:71:9"},"nodeType":"YulExpressionStatement","src":"5736:71:9"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5662:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5674:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5685:4:9","type":""}],"src":"5592:222:9"},{"body":{"nodeType":"YulBlock","src":"5848:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5865:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5868:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5858:6:9"},"nodeType":"YulFunctionCall","src":"5858:88:9"},"nodeType":"YulExpressionStatement","src":"5858:88:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5962:1:9","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5965:4:9","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5955:6:9"},"nodeType":"YulFunctionCall","src":"5955:15:9"},"nodeType":"YulExpressionStatement","src":"5955:15:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5986:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5989:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5979:6:9"},"nodeType":"YulFunctionCall","src":"5979:15:9"},"nodeType":"YulExpressionStatement","src":"5979:15:9"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5820:180:9"},{"body":{"nodeType":"YulBlock","src":"6057:51:9","statements":[{"nodeType":"YulAssignment","src":"6067:34:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6092:1:9","type":"","value":"1"},{"name":"value","nodeType":"YulIdentifier","src":"6095:5:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6088:3:9"},"nodeType":"YulFunctionCall","src":"6088:13:9"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"6067:8:9"}]}]},"name":"shift_right_1_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6038:5:9","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"6048:8:9","type":""}],"src":"6006:102:9"},{"body":{"nodeType":"YulBlock","src":"6187:775:9","statements":[{"nodeType":"YulAssignment","src":"6197:15:9","value":{"name":"_power","nodeType":"YulIdentifier","src":"6206:6:9"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6197:5:9"}]},{"nodeType":"YulAssignment","src":"6221:14:9","value":{"name":"_base","nodeType":"YulIdentifier","src":"6230:5:9"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"6221:4:9"}]},{"body":{"nodeType":"YulBlock","src":"6279:677:9","statements":[{"body":{"nodeType":"YulBlock","src":"6367:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6369:16:9"},"nodeType":"YulFunctionCall","src":"6369:18:9"},"nodeType":"YulExpressionStatement","src":"6369:18:9"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"6345:4:9"},{"arguments":[{"name":"max","nodeType":"YulIdentifier","src":"6355:3:9"},{"name":"base","nodeType":"YulIdentifier","src":"6360:4:9"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6351:3:9"},"nodeType":"YulFunctionCall","src":"6351:14:9"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6342:2:9"},"nodeType":"YulFunctionCall","src":"6342:24:9"},"nodeType":"YulIf","src":"6339:50:9"},{"body":{"nodeType":"YulBlock","src":"6434:419:9","statements":[{"nodeType":"YulAssignment","src":"6814:25:9","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"6827:5:9"},{"name":"base","nodeType":"YulIdentifier","src":"6834:4:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6823:3:9"},"nodeType":"YulFunctionCall","src":"6823:16:9"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6814:5:9"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"6409:8:9"},{"kind":"number","nodeType":"YulLiteral","src":"6419:1:9","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6405:3:9"},"nodeType":"YulFunctionCall","src":"6405:16:9"},"nodeType":"YulIf","src":"6402:451:9"},{"nodeType":"YulAssignment","src":"6866:23:9","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"6878:4:9"},{"name":"base","nodeType":"YulIdentifier","src":"6884:4:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6874:3:9"},"nodeType":"YulFunctionCall","src":"6874:15:9"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"6866:4:9"}]},{"nodeType":"YulAssignment","src":"6902:44:9","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"6937:8:9"}],"functionName":{"name":"shift_right_1_unsigned","nodeType":"YulIdentifier","src":"6914:22:9"},"nodeType":"YulFunctionCall","src":"6914:32:9"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"6902:8:9"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"6255:8:9"},{"kind":"number","nodeType":"YulLiteral","src":"6265:1:9","type":"","value":"1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6252:2:9"},"nodeType":"YulFunctionCall","src":"6252:15:9"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6268:2:9","statements":[]},"pre":{"nodeType":"YulBlock","src":"6248:3:9","statements":[]},"src":"6244:712:9"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nodeType":"YulTypedName","src":"6142:6:9","type":""},{"name":"_base","nodeType":"YulTypedName","src":"6150:5:9","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"6157:8:9","type":""},{"name":"max","nodeType":"YulTypedName","src":"6167:3:9","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"6175:5:9","type":""},{"name":"base","nodeType":"YulTypedName","src":"6182:4:9","type":""}],"src":"6114:848:9"},{"body":{"nodeType":"YulBlock","src":"7028:1013:9","statements":[{"body":{"nodeType":"YulBlock","src":"7223:20:9","statements":[{"nodeType":"YulAssignment","src":"7225:10:9","value":{"kind":"number","nodeType":"YulLiteral","src":"7234:1:9","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7225:5:9"}]},{"nodeType":"YulLeave","src":"7236:5:9"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7213:8:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7206:6:9"},"nodeType":"YulFunctionCall","src":"7206:16:9"},"nodeType":"YulIf","src":"7203:40:9"},{"body":{"nodeType":"YulBlock","src":"7268:20:9","statements":[{"nodeType":"YulAssignment","src":"7270:10:9","value":{"kind":"number","nodeType":"YulLiteral","src":"7279:1:9","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7270:5:9"}]},{"nodeType":"YulLeave","src":"7281:5:9"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7262:4:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7255:6:9"},"nodeType":"YulFunctionCall","src":"7255:12:9"},"nodeType":"YulIf","src":"7252:36:9"},{"cases":[{"body":{"nodeType":"YulBlock","src":"7398:20:9","statements":[{"nodeType":"YulAssignment","src":"7400:10:9","value":{"kind":"number","nodeType":"YulLiteral","src":"7409:1:9","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7400:5:9"}]},{"nodeType":"YulLeave","src":"7411:5:9"}]},"nodeType":"YulCase","src":"7391:27:9","value":{"kind":"number","nodeType":"YulLiteral","src":"7396:1:9","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"7442:176:9","statements":[{"body":{"nodeType":"YulBlock","src":"7477:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7479:16:9"},"nodeType":"YulFunctionCall","src":"7479:18:9"},"nodeType":"YulExpressionStatement","src":"7479:18:9"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7462:8:9"},{"kind":"number","nodeType":"YulLiteral","src":"7472:3:9","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7459:2:9"},"nodeType":"YulFunctionCall","src":"7459:17:9"},"nodeType":"YulIf","src":"7456:43:9"},{"nodeType":"YulAssignment","src":"7512:25:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7525:1:9","type":"","value":"2"},{"name":"exponent","nodeType":"YulIdentifier","src":"7528:8:9"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"7521:3:9"},"nodeType":"YulFunctionCall","src":"7521:16:9"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7512:5:9"}]},{"body":{"nodeType":"YulBlock","src":"7568:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7570:16:9"},"nodeType":"YulFunctionCall","src":"7570:18:9"},"nodeType":"YulExpressionStatement","src":"7570:18:9"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"7556:5:9"},{"name":"max","nodeType":"YulIdentifier","src":"7563:3:9"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7553:2:9"},"nodeType":"YulFunctionCall","src":"7553:14:9"},"nodeType":"YulIf","src":"7550:40:9"},{"nodeType":"YulLeave","src":"7603:5:9"}]},"nodeType":"YulCase","src":"7427:191:9","value":{"kind":"number","nodeType":"YulLiteral","src":"7432:1:9","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"7348:4:9"},"nodeType":"YulSwitch","src":"7341:277:9"},{"body":{"nodeType":"YulBlock","src":"7750:123:9","statements":[{"nodeType":"YulAssignment","src":"7764:28:9","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7777:4:9"},{"name":"exponent","nodeType":"YulIdentifier","src":"7783:8:9"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"7773:3:9"},"nodeType":"YulFunctionCall","src":"7773:19:9"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7764:5:9"}]},{"body":{"nodeType":"YulBlock","src":"7823:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7825:16:9"},"nodeType":"YulFunctionCall","src":"7825:18:9"},"nodeType":"YulExpressionStatement","src":"7825:18:9"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"7811:5:9"},{"name":"max","nodeType":"YulIdentifier","src":"7818:3:9"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7808:2:9"},"nodeType":"YulFunctionCall","src":"7808:14:9"},"nodeType":"YulIf","src":"7805:40:9"},{"nodeType":"YulLeave","src":"7858:5:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7653:4:9"},{"kind":"number","nodeType":"YulLiteral","src":"7659:2:9","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7650:2:9"},"nodeType":"YulFunctionCall","src":"7650:12:9"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7667:8:9"},{"kind":"number","nodeType":"YulLiteral","src":"7677:2:9","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7664:2:9"},"nodeType":"YulFunctionCall","src":"7664:16:9"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7646:3:9"},"nodeType":"YulFunctionCall","src":"7646:35:9"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"7702:4:9"},{"kind":"number","nodeType":"YulLiteral","src":"7708:3:9","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7699:2:9"},"nodeType":"YulFunctionCall","src":"7699:13:9"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"7717:8:9"},{"kind":"number","nodeType":"YulLiteral","src":"7727:2:9","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7714:2:9"},"nodeType":"YulFunctionCall","src":"7714:16:9"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7695:3:9"},"nodeType":"YulFunctionCall","src":"7695:36:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7630:2:9"},"nodeType":"YulFunctionCall","src":"7630:111:9"},"nodeType":"YulIf","src":"7627:246:9"},{"nodeType":"YulAssignment","src":"7883:57:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7917:1:9","type":"","value":"1"},{"name":"base","nodeType":"YulIdentifier","src":"7920:4:9"},{"name":"exponent","nodeType":"YulIdentifier","src":"7926:8:9"},{"name":"max","nodeType":"YulIdentifier","src":"7936:3:9"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"7898:18:9"},"nodeType":"YulFunctionCall","src":"7898:42:9"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"7883:5:9"},{"name":"base","nodeType":"YulIdentifier","src":"7890:4:9"}]},{"body":{"nodeType":"YulBlock","src":"7979:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7981:16:9"},"nodeType":"YulFunctionCall","src":"7981:18:9"},"nodeType":"YulExpressionStatement","src":"7981:18:9"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"7956:5:9"},{"arguments":[{"name":"max","nodeType":"YulIdentifier","src":"7967:3:9"},{"name":"base","nodeType":"YulIdentifier","src":"7972:4:9"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7963:3:9"},"nodeType":"YulFunctionCall","src":"7963:14:9"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7953:2:9"},"nodeType":"YulFunctionCall","src":"7953:25:9"},"nodeType":"YulIf","src":"7950:51:9"},{"nodeType":"YulAssignment","src":"8010:25:9","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"8023:5:9"},{"name":"base","nodeType":"YulIdentifier","src":"8030:4:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8019:3:9"},"nodeType":"YulFunctionCall","src":"8019:16:9"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8010:5:9"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"6998:4:9","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"7004:8:9","type":""},{"name":"max","nodeType":"YulTypedName","src":"7014:3:9","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"7022:5:9","type":""}],"src":"6968:1073:9"},{"body":{"nodeType":"YulBlock","src":"8090:43:9","statements":[{"nodeType":"YulAssignment","src":"8100:27:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8115:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"8122:4:9","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8111:3:9"},"nodeType":"YulFunctionCall","src":"8111:16:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"8100:7:9"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8072:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"8082:7:9","type":""}],"src":"8047:86:9"},{"body":{"nodeType":"YulBlock","src":"8203:217:9","statements":[{"nodeType":"YulAssignment","src":"8213:31:9","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"8239:4:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"8221:17:9"},"nodeType":"YulFunctionCall","src":"8221:23:9"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"8213:4:9"}]},{"nodeType":"YulAssignment","src":"8253:37:9","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"8281:8:9"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"8265:15:9"},"nodeType":"YulFunctionCall","src":"8265:25:9"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"8253:8:9"}]},{"nodeType":"YulAssignment","src":"8300:113:9","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"8330:4:9"},{"name":"exponent","nodeType":"YulIdentifier","src":"8336:8:9"},{"kind":"number","nodeType":"YulLiteral","src":"8346:66:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"8309:20:9"},"nodeType":"YulFunctionCall","src":"8309:104:9"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"8300:5:9"}]}]},"name":"checked_exp_t_uint256_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"8178:4:9","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"8184:8:9","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"8197:5:9","type":""}],"src":"8139:281:9"},{"body":{"nodeType":"YulBlock","src":"8474:362:9","statements":[{"nodeType":"YulAssignment","src":"8484:25:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8507:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"8489:17:9"},"nodeType":"YulFunctionCall","src":"8489:20:9"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"8484:1:9"}]},{"nodeType":"YulAssignment","src":"8518:25:9","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8541:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"8523:17:9"},"nodeType":"YulFunctionCall","src":"8523:20:9"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"8518:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"8552:28:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8575:1:9"},{"name":"y","nodeType":"YulIdentifier","src":"8578:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8571:3:9"},"nodeType":"YulFunctionCall","src":"8571:9:9"},"variables":[{"name":"product_raw","nodeType":"YulTypedName","src":"8556:11:9","type":""}]},{"nodeType":"YulAssignment","src":"8589:41:9","value":{"arguments":[{"name":"product_raw","nodeType":"YulIdentifier","src":"8618:11:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"8600:17:9"},"nodeType":"YulFunctionCall","src":"8600:30:9"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"8589:7:9"}]},{"body":{"nodeType":"YulBlock","src":"8807:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8809:16:9"},"nodeType":"YulFunctionCall","src":"8809:18:9"},"nodeType":"YulExpressionStatement","src":"8809:18:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8740:1:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8733:6:9"},"nodeType":"YulFunctionCall","src":"8733:9:9"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8763:1:9"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"8770:7:9"},{"name":"x","nodeType":"YulIdentifier","src":"8779:1:9"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8766:3:9"},"nodeType":"YulFunctionCall","src":"8766:15:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8760:2:9"},"nodeType":"YulFunctionCall","src":"8760:22:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8713:2:9"},"nodeType":"YulFunctionCall","src":"8713:83:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8693:6:9"},"nodeType":"YulFunctionCall","src":"8693:113:9"},"nodeType":"YulIf","src":"8690:139:9"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8457:1:9","type":""},{"name":"y","nodeType":"YulTypedName","src":"8460:1:9","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"8466:7:9","type":""}],"src":"8426:410:9"},{"body":{"nodeType":"YulBlock","src":"8886:147:9","statements":[{"nodeType":"YulAssignment","src":"8896:25:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8919:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"8901:17:9"},"nodeType":"YulFunctionCall","src":"8901:20:9"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"8896:1:9"}]},{"nodeType":"YulAssignment","src":"8930:25:9","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8953:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"8935:17:9"},"nodeType":"YulFunctionCall","src":"8935:20:9"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"8930:1:9"}]},{"nodeType":"YulAssignment","src":"8964:16:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8975:1:9"},{"name":"y","nodeType":"YulIdentifier","src":"8978:1:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8971:3:9"},"nodeType":"YulFunctionCall","src":"8971:9:9"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"8964:3:9"}]},{"body":{"nodeType":"YulBlock","src":"9004:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9006:16:9"},"nodeType":"YulFunctionCall","src":"9006:18:9"},"nodeType":"YulExpressionStatement","src":"9006:18:9"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8996:1:9"},{"name":"sum","nodeType":"YulIdentifier","src":"8999:3:9"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8993:2:9"},"nodeType":"YulFunctionCall","src":"8993:10:9"},"nodeType":"YulIf","src":"8990:36:9"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8873:1:9","type":""},{"name":"y","nodeType":"YulTypedName","src":"8876:1:9","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"8882:3:9","type":""}],"src":"8842:191:9"},{"body":{"nodeType":"YulBlock","src":"9104:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9121:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9144:5:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"9126:17:9"},"nodeType":"YulFunctionCall","src":"9126:24:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9114:6:9"},"nodeType":"YulFunctionCall","src":"9114:37:9"},"nodeType":"YulExpressionStatement","src":"9114:37:9"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9092:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9099:3:9","type":""}],"src":"9039:118:9"},{"body":{"nodeType":"YulBlock","src":"9317:288:9","statements":[{"nodeType":"YulAssignment","src":"9327:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9339:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"9350:2:9","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9335:3:9"},"nodeType":"YulFunctionCall","src":"9335:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9327:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9407:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9420:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"9431:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9416:3:9"},"nodeType":"YulFunctionCall","src":"9416:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"9363:43:9"},"nodeType":"YulFunctionCall","src":"9363:71:9"},"nodeType":"YulExpressionStatement","src":"9363:71:9"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9488:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9501:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"9512:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9497:3:9"},"nodeType":"YulFunctionCall","src":"9497:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"9444:43:9"},"nodeType":"YulFunctionCall","src":"9444:72:9"},"nodeType":"YulExpressionStatement","src":"9444:72:9"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9570:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9583:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"9594:2:9","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9579:3:9"},"nodeType":"YulFunctionCall","src":"9579:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"9526:43:9"},"nodeType":"YulFunctionCall","src":"9526:72:9"},"nodeType":"YulExpressionStatement","src":"9526:72:9"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9273:9:9","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9285:6:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9293:6:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9301:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9312:4:9","type":""}],"src":"9163:442:9"},{"body":{"nodeType":"YulBlock","src":"9709:124:9","statements":[{"nodeType":"YulAssignment","src":"9719:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9731:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"9742:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9727:3:9"},"nodeType":"YulFunctionCall","src":"9727:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9719:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9799:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9812:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"9823:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9808:3:9"},"nodeType":"YulFunctionCall","src":"9808:17:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"9755:43:9"},"nodeType":"YulFunctionCall","src":"9755:71:9"},"nodeType":"YulExpressionStatement","src":"9755:71:9"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9681:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9693:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9704:4:9","type":""}],"src":"9611:222:9"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint8(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50336040518060400160405280600a81526020017f4b555a4144455349474e000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4b444e0000000000000000000000000000000000000000000000000000000000815250816003908162000090919062000777565b508060049081620000a2919062000777565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001119190620008a3565b60405180910390fd5b6200012b816200017160201b60201c565b506200016b33620001416200023760201b60201c565b600a6200014f919062000a50565b620f42406200015f919062000aa1565b6200024060201b60201c565b62000b92565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002b55760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002ac9190620008a3565b60405180910390fd5b620002c960008383620002cd60201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200032357806002600082825462000316919062000aec565b92505081905550620003f9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620003b2578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620003a99392919062000b38565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000444578060026000828254039250508190555062000491565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004f0919062000b75565b60405180910390a3505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200057f57607f821691505b60208210810362000595576200059462000537565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005c0565b6200060b8683620005c0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000658620006526200064c8462000623565b6200062d565b62000623565b9050919050565b6000819050919050565b620006748362000637565b6200068c62000683826200065f565b848454620005cd565b825550505050565b600090565b620006a362000694565b620006b081848462000669565b505050565b5b81811015620006d857620006cc60008262000699565b600181019050620006b6565b5050565b601f8211156200072757620006f1816200059b565b620006fc84620005b0565b810160208510156200070c578190505b620007246200071b85620005b0565b830182620006b5565b50505b505050565b600082821c905092915050565b60006200074c600019846008026200072c565b1980831691505092915050565b600062000767838362000739565b9150826002028217905092915050565b6200078282620004fd565b67ffffffffffffffff8111156200079e576200079d62000508565b5b620007aa825462000566565b620007b7828285620006dc565b600060209050601f831160018114620007ef5760008415620007da578287015190505b620007e6858262000759565b86555062000856565b601f198416620007ff866200059b565b60005b82811015620008295784890151825560018201915060208501945060208101905062000802565b8683101562000849578489015162000845601f89168262000739565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200088b826200085e565b9050919050565b6200089d816200087e565b82525050565b6000602082019050620008ba600083018462000892565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094e57808604811115620009265762000925620008c0565b5b6001851615620009365780820291505b80810290506200094685620008ef565b945062000906565b94509492505050565b60008262000969576001905062000a3c565b8162000979576000905062000a3c565b81600181146200099257600281146200099d57620009d3565b600191505062000a3c565b60ff841115620009b257620009b1620008c0565b5b8360020a915084821115620009cc57620009cb620008c0565b5b5062000a3c565b5060208310610133831016604e8410600b841016171562000a0d5782820a90508381111562000a075762000a06620008c0565b5b62000a3c565b62000a1c8484846001620008fc565b9250905081840481111562000a365762000a35620008c0565b5b81810290505b9392505050565b600060ff82169050919050565b600062000a5d8262000623565b915062000a6a8362000a43565b925062000a997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000957565b905092915050565b600062000aae8262000623565b915062000abb8362000623565b925082820262000acb8162000623565b9150828204841483151762000ae55762000ae4620008c0565b5b5092915050565b600062000af98262000623565b915062000b068362000623565b925082820190508082111562000b215762000b20620008c0565b5b92915050565b62000b328162000623565b82525050565b600060608201905062000b4f600083018662000892565b62000b5e602083018562000b27565b62000b6d604083018462000b27565b949350505050565b600060208201905062000b8c600083018462000b27565b92915050565b61119b8062000ba26000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610def565b60405180910390f35b61010c60048036038101906101079190610eaa565b61032e565b6040516101199190610f05565b60405180910390f35b61012a610351565b6040516101379190610f2f565b60405180910390f35b61015a60048036038101906101559190610f4a565b61035b565b6040516101679190610f05565b60405180910390f35b61017861038a565b6040516101859190610fb9565b60405180910390f35b6101a860048036038101906101a39190610eaa565b610393565b005b6101c460048036038101906101bf9190610fd4565b6103a9565b6040516101d19190610f2f565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f99190611010565b60405180910390f35b61020a61042f565b6040516102179190610def565b60405180910390f35b61023a60048036038101906102359190610eaa565b6104c1565b6040516102479190610f05565b60405180910390f35b61026a6004803603810190610265919061102b565b6104e4565b6040516102779190610f2f565b60405180910390f35b61029a60048036038101906102959190610fd4565b61056b565b005b6060600380546102ab9061109a565b80601f01602080910402602001604051908101604052809291908181526020018280546102d79061109a565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e8585856106a0565b60019150509392505050565b60006012905090565b61039b610794565b6103a5828261081b565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610794565b610403600061089d565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e9061109a565b80601f016020809104026020016040519081016040528092919081815260200182805461046a9061109a565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d98185856106a0565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610794565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc9190611010565b60405180910390fd5b6105ee8161089d565b50565b600033905090565b6106068383836001610963565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561069a578181101561068a578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610681939291906110cb565b60405180910390fd5b61069984848484036000610963565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107125760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107099190611010565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107845760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077b9190611010565b60405180910390fd5b61078f838383610b3a565b505050565b61079c6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107ba610405565b73ffffffffffffffffffffffffffffffffffffffff1614610819576107dd6105f1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108109190611010565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088d5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108849190611010565b60405180910390fd5b61089960008383610b3a565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d55760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cc9190611010565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a475760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3e9190611010565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b34578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2b9190610f2f565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8c578060026000828254610b809190611131565b92505081905550610c5f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c18578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0f939291906110cb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca85780600260008282540392505081905550610cf5565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d529190610f2f565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d99578082015181840152602081019050610d7e565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc182610d5f565b610dcb8185610d6a565b9350610ddb818560208601610d7b565b610de481610da5565b840191505092915050565b60006020820190508181036000830152610e098184610db6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4182610e16565b9050919050565b610e5181610e36565b8114610e5c57600080fd5b50565b600081359050610e6e81610e48565b92915050565b6000819050919050565b610e8781610e74565b8114610e9257600080fd5b50565b600081359050610ea481610e7e565b92915050565b60008060408385031215610ec157610ec0610e11565b5b6000610ecf85828601610e5f565b9250506020610ee085828601610e95565b9150509250929050565b60008115159050919050565b610eff81610eea565b82525050565b6000602082019050610f1a6000830184610ef6565b92915050565b610f2981610e74565b82525050565b6000602082019050610f446000830184610f20565b92915050565b600080600060608486031215610f6357610f62610e11565b5b6000610f7186828701610e5f565b9350506020610f8286828701610e5f565b9250506040610f9386828701610e95565b9150509250925092565b600060ff82169050919050565b610fb381610f9d565b82525050565b6000602082019050610fce6000830184610faa565b92915050565b600060208284031215610fea57610fe9610e11565b5b6000610ff884828501610e5f565b91505092915050565b61100a81610e36565b82525050565b60006020820190506110256000830184611001565b92915050565b6000806040838503121561104257611041610e11565b5b600061105085828601610e5f565b925050602061106185828601610e5f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b257607f821691505b6020821081036110c5576110c461106b565b5b50919050565b60006060820190506110e06000830186611001565b6110ed6020830185610f20565b6110fa6040830184610f20565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113c82610e74565b915061114783610e74565b925082820190508082111561115f5761115e611102565b5b9291505056fea2646970667358221220f9ac1ffd54c2fe21524dad7bb9ed4cdbf483536fbad5e8ce138c81753567988664736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4B555A4144455349474E00000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4B444E0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x90 SWAP2 SWAP1 PUSH3 0x777 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA2 SWAP2 SWAP1 PUSH3 0x777 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x11A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x111 SWAP2 SWAP1 PUSH3 0x8A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x12B DUP2 PUSH3 0x171 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x16B CALLER PUSH3 0x141 PUSH3 0x237 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xA PUSH3 0x14F SWAP2 SWAP1 PUSH3 0xA50 JUMP JUMPDEST PUSH3 0xF4240 PUSH3 0x15F SWAP2 SWAP1 PUSH3 0xAA1 JUMP JUMPDEST PUSH3 0x240 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xB92 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x2B5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x2AC SWAP2 SWAP1 PUSH3 0x8A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x2C9 PUSH1 0x0 DUP4 DUP4 PUSH3 0x2CD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x323 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x316 SWAP2 SWAP1 PUSH3 0xAEC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH3 0x3F9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH3 0x3B2 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x3A9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xB38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x444 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH3 0x491 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x4F0 SWAP2 SWAP1 PUSH3 0xB75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x57F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x595 JUMPI PUSH3 0x594 PUSH3 0x537 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x5FF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x5C0 JUMP JUMPDEST PUSH3 0x60B DUP7 DUP4 PUSH3 0x5C0 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x658 PUSH3 0x652 PUSH3 0x64C DUP5 PUSH3 0x623 JUMP JUMPDEST PUSH3 0x62D JUMP JUMPDEST PUSH3 0x623 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x674 DUP4 PUSH3 0x637 JUMP JUMPDEST PUSH3 0x68C PUSH3 0x683 DUP3 PUSH3 0x65F JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x5CD JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x6A3 PUSH3 0x694 JUMP JUMPDEST PUSH3 0x6B0 DUP2 DUP5 DUP5 PUSH3 0x669 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x6D8 JUMPI PUSH3 0x6CC PUSH1 0x0 DUP3 PUSH3 0x699 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x6B6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x727 JUMPI PUSH3 0x6F1 DUP2 PUSH3 0x59B JUMP JUMPDEST PUSH3 0x6FC DUP5 PUSH3 0x5B0 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x70C JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x724 PUSH3 0x71B DUP6 PUSH3 0x5B0 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x6B5 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x74C PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x72C JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x767 DUP4 DUP4 PUSH3 0x739 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x782 DUP3 PUSH3 0x4FD JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x79E JUMPI PUSH3 0x79D PUSH3 0x508 JUMP JUMPDEST JUMPDEST PUSH3 0x7AA DUP3 SLOAD PUSH3 0x566 JUMP JUMPDEST PUSH3 0x7B7 DUP3 DUP3 DUP6 PUSH3 0x6DC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x7EF JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x7DA JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x7E6 DUP6 DUP3 PUSH3 0x759 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x856 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x7FF DUP7 PUSH3 0x59B JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x829 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x802 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x849 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x845 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x739 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x88B DUP3 PUSH3 0x85E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x89D DUP2 PUSH3 0x87E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x8BA PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x892 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP2 POP DUP4 SWAP1 POP JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH3 0x94E JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH3 0x926 JUMPI PUSH3 0x925 PUSH3 0x8C0 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH3 0x936 JUMPI DUP1 DUP3 MUL SWAP2 POP JUMPDEST DUP1 DUP2 MUL SWAP1 POP PUSH3 0x946 DUP6 PUSH3 0x8EF JUMP JUMPDEST SWAP5 POP PUSH3 0x906 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x969 JUMPI PUSH1 0x1 SWAP1 POP PUSH3 0xA3C JUMP JUMPDEST DUP2 PUSH3 0x979 JUMPI PUSH1 0x0 SWAP1 POP PUSH3 0xA3C JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH3 0x992 JUMPI PUSH1 0x2 DUP2 EQ PUSH3 0x99D JUMPI PUSH3 0x9D3 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH3 0xA3C JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH3 0x9B2 JUMPI PUSH3 0x9B1 PUSH3 0x8C0 JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH3 0x9CC JUMPI PUSH3 0x9CB PUSH3 0x8C0 JUMP JUMPDEST JUMPDEST POP PUSH3 0xA3C JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH3 0xA0D JUMPI DUP3 DUP3 EXP SWAP1 POP DUP4 DUP2 GT ISZERO PUSH3 0xA07 JUMPI PUSH3 0xA06 PUSH3 0x8C0 JUMP JUMPDEST JUMPDEST PUSH3 0xA3C JUMP JUMPDEST PUSH3 0xA1C DUP5 DUP5 DUP5 PUSH1 0x1 PUSH3 0x8FC JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH3 0xA36 JUMPI PUSH3 0xA35 PUSH3 0x8C0 JUMP JUMPDEST JUMPDEST DUP2 DUP2 MUL SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA5D DUP3 PUSH3 0x623 JUMP JUMPDEST SWAP2 POP PUSH3 0xA6A DUP4 PUSH3 0xA43 JUMP JUMPDEST SWAP3 POP PUSH3 0xA99 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP5 PUSH3 0x957 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xAAE DUP3 PUSH3 0x623 JUMP JUMPDEST SWAP2 POP PUSH3 0xABB DUP4 PUSH3 0x623 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH3 0xACB DUP2 PUSH3 0x623 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH3 0xAE5 JUMPI PUSH3 0xAE4 PUSH3 0x8C0 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xAF9 DUP3 PUSH3 0x623 JUMP JUMPDEST SWAP2 POP PUSH3 0xB06 DUP4 PUSH3 0x623 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0xB21 JUMPI PUSH3 0xB20 PUSH3 0x8C0 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xB32 DUP2 PUSH3 0x623 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xB4F PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x892 JUMP JUMPDEST PUSH3 0xB5E PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0xB27 JUMP JUMPDEST PUSH3 0xB6D PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0xB27 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0xB8C PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0xB27 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x119B DUP1 PUSH3 0xBA2 PUSH1 0x0 CODECOPY 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x280 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E4 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x18E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0xF4A JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x178 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0xFB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xFD4 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E2 PUSH2 0x3F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EC PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x102B JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0xFD4 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AB SWAP1 PUSH2 0x109A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV 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 PUSH2 0x2D7 SWAP1 PUSH2 0x109A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x324 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x324 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x307 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x339 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x346 DUP2 DUP6 DUP6 PUSH2 0x5F9 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x366 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x373 DUP6 DUP3 DUP6 PUSH2 0x60B JUMP JUMPDEST PUSH2 0x37E DUP6 DUP6 DUP6 PUSH2 0x6A0 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x794 JUMP JUMPDEST PUSH2 0x3A5 DUP3 DUP3 PUSH2 0x81B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3F9 PUSH2 0x794 JUMP JUMPDEST PUSH2 0x403 PUSH1 0x0 PUSH2 0x89D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0x109A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV 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 PUSH2 0x46A SWAP1 PUSH2 0x109A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4CC PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4D9 DUP2 DUP6 DUP6 PUSH2 0x6A0 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x573 PUSH2 0x794 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5E5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DC SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE DUP2 PUSH2 0x89D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x606 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x963 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x617 DUP5 DUP5 PUSH2 0x4E4 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x69A JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x68A JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x681 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x699 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x963 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x712 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x709 SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x784 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77B SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x78F DUP4 DUP4 DUP4 PUSH2 0xB3A JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x79C PUSH2 0x5F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7BA PUSH2 0x405 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x819 JUMPI PUSH2 0x7DD PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x810 SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x88D JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x884 SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x899 PUSH1 0x0 DUP4 DUP4 PUSH2 0xB3A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9D5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CC SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA47 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3E SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0xB34 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB2B SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB8C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1131 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xC18 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xCA8 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xCF5 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xD52 SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD99 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD7E JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDC1 DUP3 PUSH2 0xD5F JUMP JUMPDEST PUSH2 0xDCB DUP2 DUP6 PUSH2 0xD6A JUMP JUMPDEST SWAP4 POP PUSH2 0xDDB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD7B JUMP JUMPDEST PUSH2 0xDE4 DUP2 PUSH2 0xDA5 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE09 DUP2 DUP5 PUSH2 0xDB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE41 DUP3 PUSH2 0xE16 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE51 DUP2 PUSH2 0xE36 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE6E DUP2 PUSH2 0xE48 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE87 DUP2 PUSH2 0xE74 JUMP JUMPDEST DUP2 EQ PUSH2 0xE92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEA4 DUP2 PUSH2 0xE7E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC1 JUMPI PUSH2 0xEC0 PUSH2 0xE11 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xECF DUP6 DUP3 DUP7 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEE0 DUP6 DUP3 DUP7 ADD PUSH2 0xE95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEFF DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF1A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEF6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF29 DUP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF44 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0xE11 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF71 DUP7 DUP3 DUP8 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xF82 DUP7 DUP3 DUP8 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xF93 DUP7 DUP3 DUP8 ADD PUSH2 0xE95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFB3 DUP2 PUSH2 0xF9D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFCE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFEA JUMPI PUSH2 0xFE9 PUSH2 0xE11 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF8 DUP5 DUP3 DUP6 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x100A DUP2 PUSH2 0xE36 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1025 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1001 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1042 JUMPI PUSH2 0x1041 PUSH2 0xE11 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1050 DUP6 DUP3 DUP7 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1061 DUP6 DUP3 DUP7 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x10B2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C5 JUMPI PUSH2 0x10C4 PUSH2 0x106B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x10E0 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1001 JUMP JUMPDEST PUSH2 0x10ED PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF20 JUMP JUMPDEST PUSH2 0x10FA PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF20 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x113C DUP3 PUSH2 0xE74 JUMP JUMPDEST SWAP2 POP PUSH2 0x1147 DUP4 PUSH2 0xE74 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x115F JUMPI PUSH2 0x115E PUSH2 0x1102 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0xAC 0x1F REVERT SLOAD 0xC2 INVALID 0x21 MSTORE 0x4D 0xAD PUSH28 0xB9ED4CDBF483536FBAD5E8CE138C81753567988664736F6C63430008 EQ STOP CALLER ","sourceMap":"174:272:8:-:0;;;217:123;;;;;;;;;;266:10;1582:113:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;289:43:8::2;295:10;321;:8;;;:10;;:::i;:::-;317:2;:14;;;;:::i;:::-;307:7;:24;;;;:::i;:::-;289:5;;;:43;;:::i;:::-;174:272:::0;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;2688:82:2:-;2737:5;2761:2;2754:9;;2688:82;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;;;:35;;:::i;:::-;7362:208;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:9:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;5234:126::-;5271:7;5311:42;5304:5;5300:54;5289:65;;5234:126;;;:::o;5366:96::-;5403:7;5432:24;5450:5;5432:24;:::i;:::-;5421:35;;5366:96;;;:::o;5468:118::-;5555:24;5573:5;5555:24;:::i;:::-;5550:3;5543:37;5468:118;;:::o;5592:222::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:71;5804:1;5793:9;5789:17;5780:6;5736:71;:::i;:::-;5592:222;;;;:::o;5820:180::-;5868:77;5865:1;5858:88;5965:4;5962:1;5955:15;5989:4;5986:1;5979:15;6006:102;6048:8;6095:5;6092:1;6088:13;6067:34;;6006:102;;;:::o;6114:848::-;6175:5;6182:4;6206:6;6197:15;;6230:5;6221:14;;6244:712;6265:1;6255:8;6252:15;6244:712;;;6360:4;6355:3;6351:14;6345:4;6342:24;6339:50;;;6369:18;;:::i;:::-;6339:50;6419:1;6409:8;6405:16;6402:451;;;6834:4;6827:5;6823:16;6814:25;;6402:451;6884:4;6878;6874:15;6866:23;;6914:32;6937:8;6914:32;:::i;:::-;6902:44;;6244:712;;;6114:848;;;;;;;:::o;6968:1073::-;7022:5;7213:8;7203:40;;7234:1;7225:10;;7236:5;;7203:40;7262:4;7252:36;;7279:1;7270:10;;7281:5;;7252:36;7348:4;7396:1;7391:27;;;;7432:1;7427:191;;;;7341:277;;7391:27;7409:1;7400:10;;7411:5;;;7427:191;7472:3;7462:8;7459:17;7456:43;;;7479:18;;:::i;:::-;7456:43;7528:8;7525:1;7521:16;7512:25;;7563:3;7556:5;7553:14;7550:40;;;7570:18;;:::i;:::-;7550:40;7603:5;;;7341:277;;7727:2;7717:8;7714:16;7708:3;7702:4;7699:13;7695:36;7677:2;7667:8;7664:16;7659:2;7653:4;7650:12;7646:35;7630:111;7627:246;;;7783:8;7777:4;7773:19;7764:28;;7818:3;7811:5;7808:14;7805:40;;;7825:18;;:::i;:::-;7805:40;7858:5;;7627:246;7898:42;7936:3;7926:8;7920:4;7917:1;7898:42;:::i;:::-;7883:57;;;;7972:4;7967:3;7963:14;7956:5;7953:25;7950:51;;;7981:18;;:::i;:::-;7950:51;8030:4;8023:5;8019:16;8010:25;;6968:1073;;;;;;:::o;8047:86::-;8082:7;8122:4;8115:5;8111:16;8100:27;;8047:86;;;:::o;8139:281::-;8197:5;8221:23;8239:4;8221:23;:::i;:::-;8213:31;;8265:25;8281:8;8265:25;:::i;:::-;8253:37;;8309:104;8346:66;8336:8;8330:4;8309:104;:::i;:::-;8300:113;;8139:281;;;;:::o;8426:410::-;8466:7;8489:20;8507:1;8489:20;:::i;:::-;8484:25;;8523:20;8541:1;8523:20;:::i;:::-;8518:25;;8578:1;8575;8571:9;8600:30;8618:11;8600:30;:::i;:::-;8589:41;;8779:1;8770:7;8766:15;8763:1;8760:22;8740:1;8733:9;8713:83;8690:139;;8809:18;;:::i;:::-;8690:139;8474:362;8426:410;;;;:::o;8842:191::-;8882:3;8901:20;8919:1;8901:20;:::i;:::-;8896:25;;8935:20;8953:1;8935:20;:::i;:::-;8930:25;;8978:1;8975;8971:9;8964:16;;8999:3;8996:1;8993:10;8990:36;;;9006:18;;:::i;:::-;8990:36;8842:191;;;;:::o;9039:118::-;9126:24;9144:5;9126:24;:::i;:::-;9121:3;9114:37;9039:118;;:::o;9163:442::-;9312:4;9350:2;9339:9;9335:18;9327:26;;9363:71;9431:1;9420:9;9416:17;9407:6;9363:71;:::i;:::-;9444:72;9512:2;9501:9;9497:18;9488:6;9444:72;:::i;:::-;9526;9594:2;9583:9;9579:18;9570:6;9526:72;:::i;:::-;9163:442;;;;;;:::o;9611:222::-;9704:4;9742:2;9731:9;9727:18;9719:26;;9755:71;9823:1;9812:9;9808:17;9799:6;9755:71;:::i;:::-;9611:222;;;;:::o;174:272:8:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_690":{"entryPoint":1529,"id":690,"parameterSlots":3,"returnSlots":0},"@_approve_750":{"entryPoint":2403,"id":750,"parameterSlots":4,"returnSlots":0},"@_checkOwner_84":{"entryPoint":1940,"id":84,"parameterSlots":0,"returnSlots":0},"@_mint_639":{"entryPoint":2075,"id":639,"parameterSlots":2,"returnSlots":0},"@_msgSender_915":{"entryPoint":1521,"id":915,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_798":{"entryPoint":1547,"id":798,"parameterSlots":3,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":2205,"id":146,"parameterSlots":1,"returnSlots":0},"@_transfer_529":{"entryPoint":1696,"id":529,"parameterSlots":3,"returnSlots":0},"@_update_606":{"entryPoint":2874,"id":606,"parameterSlots":3,"returnSlots":0},"@allowance_426":{"entryPoint":1252,"id":426,"parameterSlots":2,"returnSlots":1},"@approve_450":{"entryPoint":814,"id":450,"parameterSlots":2,"returnSlots":1},"@balanceOf_385":{"entryPoint":937,"id":385,"parameterSlots":1,"returnSlots":1},"@decimals_363":{"entryPoint":906,"id":363,"parameterSlots":0,"returnSlots":1},"@mint_1861":{"entryPoint":915,"id":1861,"parameterSlots":2,"returnSlots":0},"@name_345":{"entryPoint":668,"id":345,"parameterSlots":0,"returnSlots":1},"@owner_67":{"entryPoint":1029,"id":67,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_98":{"entryPoint":1009,"id":98,"parameterSlots":0,"returnSlots":0},"@symbol_354":{"entryPoint":1071,"id":354,"parameterSlots":0,"returnSlots":1},"@totalSupply_372":{"entryPoint":849,"id":372,"parameterSlots":0,"returnSlots":1},"@transferFrom_482":{"entryPoint":859,"id":482,"parameterSlots":3,"returnSlots":1},"@transferOwnership_126":{"entryPoint":1387,"id":126,"parameterSlots":1,"returnSlots":0},"@transfer_409":{"entryPoint":1217,"id":409,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3679,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":3733,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4052,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":4139,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3914,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3754,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4097,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3830,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3510,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3872,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":4010,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4112,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":4299,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3845,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3567,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3887,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":4025,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":3423,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":3434,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":4401,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3638,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3818,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3606,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3700,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":3997,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3451,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":4250,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":4354,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":4203,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3601,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":3493,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3656,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3710,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7360:9","statements":[{"body":{"nodeType":"YulBlock","src":"66:40:9","statements":[{"nodeType":"YulAssignment","src":"77:22:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"87:5:9"},"nodeType":"YulFunctionCall","src":"87:12:9"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"77:6:9"}]}]},"name":"array_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"49:5:9","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"59:6:9","type":""}],"src":"7:99:9"},{"body":{"nodeType":"YulBlock","src":"208:73:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"225:3:9"},{"name":"length","nodeType":"YulIdentifier","src":"230:6:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"218:6:9"},"nodeType":"YulFunctionCall","src":"218:19:9"},"nodeType":"YulExpressionStatement","src":"218:19:9"},{"nodeType":"YulAssignment","src":"246:29:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"265:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"270:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"261:3:9"},"nodeType":"YulFunctionCall","src":"261:14:9"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"246:11:9"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"180:3:9","type":""},{"name":"length","nodeType":"YulTypedName","src":"185:6:9","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"196:11:9","type":""}],"src":"112:169:9"},{"body":{"nodeType":"YulBlock","src":"349:184:9","statements":[{"nodeType":"YulVariableDeclaration","src":"359:10:9","value":{"kind":"number","nodeType":"YulLiteral","src":"368:1:9","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"363:1:9","type":""}]},{"body":{"nodeType":"YulBlock","src":"428:63:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"453:3:9"},{"name":"i","nodeType":"YulIdentifier","src":"458:1:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"449:3:9"},"nodeType":"YulFunctionCall","src":"449:11:9"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"472:3:9"},{"name":"i","nodeType":"YulIdentifier","src":"477:1:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"468:3:9"},"nodeType":"YulFunctionCall","src":"468:11:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"462:5:9"},"nodeType":"YulFunctionCall","src":"462:18:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"442:6:9"},"nodeType":"YulFunctionCall","src":"442:39:9"},"nodeType":"YulExpressionStatement","src":"442:39:9"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"389:1:9"},{"name":"length","nodeType":"YulIdentifier","src":"392:6:9"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"386:2:9"},"nodeType":"YulFunctionCall","src":"386:13:9"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"400:19:9","statements":[{"nodeType":"YulAssignment","src":"402:15:9","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"411:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"414:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"407:3:9"},"nodeType":"YulFunctionCall","src":"407:10:9"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"402:1:9"}]}]},"pre":{"nodeType":"YulBlock","src":"382:3:9","statements":[]},"src":"378:113:9"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"511:3:9"},{"name":"length","nodeType":"YulIdentifier","src":"516:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"507:3:9"},"nodeType":"YulFunctionCall","src":"507:16:9"},{"kind":"number","nodeType":"YulLiteral","src":"525:1:9","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"500:6:9"},"nodeType":"YulFunctionCall","src":"500:27:9"},"nodeType":"YulExpressionStatement","src":"500:27:9"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"331:3:9","type":""},{"name":"dst","nodeType":"YulTypedName","src":"336:3:9","type":""},{"name":"length","nodeType":"YulTypedName","src":"341:6:9","type":""}],"src":"287:246:9"},{"body":{"nodeType":"YulBlock","src":"587:54:9","statements":[{"nodeType":"YulAssignment","src":"597:38:9","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"615:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"622:2:9","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"611:3:9"},"nodeType":"YulFunctionCall","src":"611:14:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"631:2:9","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"627:3:9"},"nodeType":"YulFunctionCall","src":"627:7:9"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"607:3:9"},"nodeType":"YulFunctionCall","src":"607:28:9"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"597:6:9"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"570:5:9","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"580:6:9","type":""}],"src":"539:102:9"},{"body":{"nodeType":"YulBlock","src":"739:285:9","statements":[{"nodeType":"YulVariableDeclaration","src":"749:53:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"796:5:9"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"763:32:9"},"nodeType":"YulFunctionCall","src":"763:39:9"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"753:6:9","type":""}]},{"nodeType":"YulAssignment","src":"811:78:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"877:3:9"},{"name":"length","nodeType":"YulIdentifier","src":"882:6:9"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"818:58:9"},"nodeType":"YulFunctionCall","src":"818:71:9"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"811:3:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"937:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"944:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"933:3:9"},"nodeType":"YulFunctionCall","src":"933:16:9"},{"name":"pos","nodeType":"YulIdentifier","src":"951:3:9"},{"name":"length","nodeType":"YulIdentifier","src":"956:6:9"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"898:34:9"},"nodeType":"YulFunctionCall","src":"898:65:9"},"nodeType":"YulExpressionStatement","src":"898:65:9"},{"nodeType":"YulAssignment","src":"972:46:9","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"983:3:9"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1010:6:9"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"988:21:9"},"nodeType":"YulFunctionCall","src":"988:29:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"979:3:9"},"nodeType":"YulFunctionCall","src":"979:39:9"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"972:3:9"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"720:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"727:3:9","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"735:3:9","type":""}],"src":"647:377:9"},{"body":{"nodeType":"YulBlock","src":"1148:195:9","statements":[{"nodeType":"YulAssignment","src":"1158:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:9"},"nodeType":"YulFunctionCall","src":"1166:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1205:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"1216:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1201:3:9"},"nodeType":"YulFunctionCall","src":"1201:17:9"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"1224:4:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"1230:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1220:3:9"},"nodeType":"YulFunctionCall","src":"1220:20:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1194:6:9"},"nodeType":"YulFunctionCall","src":"1194:47:9"},"nodeType":"YulExpressionStatement","src":"1194:47:9"},{"nodeType":"YulAssignment","src":"1250:86:9","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1322:6:9"},{"name":"tail","nodeType":"YulIdentifier","src":"1331:4:9"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"1258:63:9"},"nodeType":"YulFunctionCall","src":"1258:78:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1250:4:9"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1120:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1132:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1143:4:9","type":""}],"src":"1030:313:9"},{"body":{"nodeType":"YulBlock","src":"1389:35:9","statements":[{"nodeType":"YulAssignment","src":"1399:19:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1415:2:9","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1409:5:9"},"nodeType":"YulFunctionCall","src":"1409:9:9"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1399:6:9"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1382:6:9","type":""}],"src":"1349:75:9"},{"body":{"nodeType":"YulBlock","src":"1519:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1536:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1539:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1529:6:9"},"nodeType":"YulFunctionCall","src":"1529:12:9"},"nodeType":"YulExpressionStatement","src":"1529:12:9"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"1430:117:9"},{"body":{"nodeType":"YulBlock","src":"1642:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1659:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1662:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1652:6:9"},"nodeType":"YulFunctionCall","src":"1652:12:9"},"nodeType":"YulExpressionStatement","src":"1652:12:9"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"1553:117:9"},{"body":{"nodeType":"YulBlock","src":"1721:81:9","statements":[{"nodeType":"YulAssignment","src":"1731:65:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1746:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"1753:42:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1742:3:9"},"nodeType":"YulFunctionCall","src":"1742:54:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1731:7:9"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1703:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1713:7:9","type":""}],"src":"1676:126:9"},{"body":{"nodeType":"YulBlock","src":"1853:51:9","statements":[{"nodeType":"YulAssignment","src":"1863:35:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1892:5:9"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"1874:17:9"},"nodeType":"YulFunctionCall","src":"1874:24:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1863:7:9"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1835:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1845:7:9","type":""}],"src":"1808:96:9"},{"body":{"nodeType":"YulBlock","src":"1953:79:9","statements":[{"body":{"nodeType":"YulBlock","src":"2010:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2019:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2022:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2012:6:9"},"nodeType":"YulFunctionCall","src":"2012:12:9"},"nodeType":"YulExpressionStatement","src":"2012:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1976:5:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2001:5:9"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1983:17:9"},"nodeType":"YulFunctionCall","src":"1983:24:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1973:2:9"},"nodeType":"YulFunctionCall","src":"1973:35:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1966:6:9"},"nodeType":"YulFunctionCall","src":"1966:43:9"},"nodeType":"YulIf","src":"1963:63:9"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1946:5:9","type":""}],"src":"1910:122:9"},{"body":{"nodeType":"YulBlock","src":"2090:87:9","statements":[{"nodeType":"YulAssignment","src":"2100:29:9","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2122:6:9"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2109:12:9"},"nodeType":"YulFunctionCall","src":"2109:20:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2100:5:9"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2165:5:9"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"2138:26:9"},"nodeType":"YulFunctionCall","src":"2138:33:9"},"nodeType":"YulExpressionStatement","src":"2138:33:9"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2068:6:9","type":""},{"name":"end","nodeType":"YulTypedName","src":"2076:3:9","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2084:5:9","type":""}],"src":"2038:139:9"},{"body":{"nodeType":"YulBlock","src":"2228:32:9","statements":[{"nodeType":"YulAssignment","src":"2238:16:9","value":{"name":"value","nodeType":"YulIdentifier","src":"2249:5:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2238:7:9"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2210:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2220:7:9","type":""}],"src":"2183:77:9"},{"body":{"nodeType":"YulBlock","src":"2309:79:9","statements":[{"body":{"nodeType":"YulBlock","src":"2366:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2375:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2378:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2368:6:9"},"nodeType":"YulFunctionCall","src":"2368:12:9"},"nodeType":"YulExpressionStatement","src":"2368:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2332:5:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2357:5:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"2339:17:9"},"nodeType":"YulFunctionCall","src":"2339:24:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2329:2:9"},"nodeType":"YulFunctionCall","src":"2329:35:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2322:6:9"},"nodeType":"YulFunctionCall","src":"2322:43:9"},"nodeType":"YulIf","src":"2319:63:9"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2302:5:9","type":""}],"src":"2266:122:9"},{"body":{"nodeType":"YulBlock","src":"2446:87:9","statements":[{"nodeType":"YulAssignment","src":"2456:29:9","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2478:6:9"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2465:12:9"},"nodeType":"YulFunctionCall","src":"2465:20:9"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2456:5:9"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2521:5:9"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"2494:26:9"},"nodeType":"YulFunctionCall","src":"2494:33:9"},"nodeType":"YulExpressionStatement","src":"2494:33:9"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2424:6:9","type":""},{"name":"end","nodeType":"YulTypedName","src":"2432:3:9","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2440:5:9","type":""}],"src":"2394:139:9"},{"body":{"nodeType":"YulBlock","src":"2622:391:9","statements":[{"body":{"nodeType":"YulBlock","src":"2668:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"2670:77:9"},"nodeType":"YulFunctionCall","src":"2670:79:9"},"nodeType":"YulExpressionStatement","src":"2670:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2643:7:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"2652:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2639:3:9"},"nodeType":"YulFunctionCall","src":"2639:23:9"},{"kind":"number","nodeType":"YulLiteral","src":"2664:2:9","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2635:3:9"},"nodeType":"YulFunctionCall","src":"2635:32:9"},"nodeType":"YulIf","src":"2632:119:9"},{"nodeType":"YulBlock","src":"2761:117:9","statements":[{"nodeType":"YulVariableDeclaration","src":"2776:15:9","value":{"kind":"number","nodeType":"YulLiteral","src":"2790:1:9","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2780:6:9","type":""}]},{"nodeType":"YulAssignment","src":"2805:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2840:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"2851:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2836:3:9"},"nodeType":"YulFunctionCall","src":"2836:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2860:7:9"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"2815:20:9"},"nodeType":"YulFunctionCall","src":"2815:53:9"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2805:6:9"}]}]},{"nodeType":"YulBlock","src":"2888:118:9","statements":[{"nodeType":"YulVariableDeclaration","src":"2903:16:9","value":{"kind":"number","nodeType":"YulLiteral","src":"2917:2:9","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2907:6:9","type":""}]},{"nodeType":"YulAssignment","src":"2933:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2968:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"2979:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2964:3:9"},"nodeType":"YulFunctionCall","src":"2964:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2988:7:9"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"2943:20:9"},"nodeType":"YulFunctionCall","src":"2943:53:9"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2933:6:9"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2584:9:9","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2595:7:9","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2607:6:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2615:6:9","type":""}],"src":"2539:474:9"},{"body":{"nodeType":"YulBlock","src":"3061:48:9","statements":[{"nodeType":"YulAssignment","src":"3071:32:9","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3096:5:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3089:6:9"},"nodeType":"YulFunctionCall","src":"3089:13:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3082:6:9"},"nodeType":"YulFunctionCall","src":"3082:21:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"3071:7:9"}]}]},"name":"cleanup_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3043:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"3053:7:9","type":""}],"src":"3019:90:9"},{"body":{"nodeType":"YulBlock","src":"3174:50:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3191:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3211:5:9"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"3196:14:9"},"nodeType":"YulFunctionCall","src":"3196:21:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3184:6:9"},"nodeType":"YulFunctionCall","src":"3184:34:9"},"nodeType":"YulExpressionStatement","src":"3184:34:9"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3162:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3169:3:9","type":""}],"src":"3115:109:9"},{"body":{"nodeType":"YulBlock","src":"3322:118:9","statements":[{"nodeType":"YulAssignment","src":"3332:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3344:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3355:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3340:3:9"},"nodeType":"YulFunctionCall","src":"3340:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3332:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3406:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3419:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3430:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3415:3:9"},"nodeType":"YulFunctionCall","src":"3415:17:9"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulIdentifier","src":"3368:37:9"},"nodeType":"YulFunctionCall","src":"3368:65:9"},"nodeType":"YulExpressionStatement","src":"3368:65:9"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3294:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3306:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3317:4:9","type":""}],"src":"3230:210:9"},{"body":{"nodeType":"YulBlock","src":"3511:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3528:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3551:5:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"3533:17:9"},"nodeType":"YulFunctionCall","src":"3533:24:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3521:6:9"},"nodeType":"YulFunctionCall","src":"3521:37:9"},"nodeType":"YulExpressionStatement","src":"3521:37:9"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3499:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3506:3:9","type":""}],"src":"3446:118:9"},{"body":{"nodeType":"YulBlock","src":"3668:124:9","statements":[{"nodeType":"YulAssignment","src":"3678:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:9"},"nodeType":"YulFunctionCall","src":"3686:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3678:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3758:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3771:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"3782:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3767:3:9"},"nodeType":"YulFunctionCall","src":"3767:17:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"3714:43:9"},"nodeType":"YulFunctionCall","src":"3714:71:9"},"nodeType":"YulExpressionStatement","src":"3714:71:9"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3640:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3652:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3663:4:9","type":""}],"src":"3570:222:9"},{"body":{"nodeType":"YulBlock","src":"3898:519:9","statements":[{"body":{"nodeType":"YulBlock","src":"3944:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3946:77:9"},"nodeType":"YulFunctionCall","src":"3946:79:9"},"nodeType":"YulExpressionStatement","src":"3946:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3919:7:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"3928:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3915:3:9"},"nodeType":"YulFunctionCall","src":"3915:23:9"},{"kind":"number","nodeType":"YulLiteral","src":"3940:2:9","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3911:3:9"},"nodeType":"YulFunctionCall","src":"3911:32:9"},"nodeType":"YulIf","src":"3908:119:9"},{"nodeType":"YulBlock","src":"4037:117:9","statements":[{"nodeType":"YulVariableDeclaration","src":"4052:15:9","value":{"kind":"number","nodeType":"YulLiteral","src":"4066:1:9","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4056:6:9","type":""}]},{"nodeType":"YulAssignment","src":"4081:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4116:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"4127:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4112:3:9"},"nodeType":"YulFunctionCall","src":"4112:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4136:7:9"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"4091:20:9"},"nodeType":"YulFunctionCall","src":"4091:53:9"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4081:6:9"}]}]},{"nodeType":"YulBlock","src":"4164:118:9","statements":[{"nodeType":"YulVariableDeclaration","src":"4179:16:9","value":{"kind":"number","nodeType":"YulLiteral","src":"4193:2:9","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4183:6:9","type":""}]},{"nodeType":"YulAssignment","src":"4209:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4244:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"4255:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4240:3:9"},"nodeType":"YulFunctionCall","src":"4240:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4264:7:9"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"4219:20:9"},"nodeType":"YulFunctionCall","src":"4219:53:9"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4209:6:9"}]}]},{"nodeType":"YulBlock","src":"4292:118:9","statements":[{"nodeType":"YulVariableDeclaration","src":"4307:16:9","value":{"kind":"number","nodeType":"YulLiteral","src":"4321:2:9","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4311:6:9","type":""}]},{"nodeType":"YulAssignment","src":"4337:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4372:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"4383:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4368:3:9"},"nodeType":"YulFunctionCall","src":"4368:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4392:7:9"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"4347:20:9"},"nodeType":"YulFunctionCall","src":"4347:53:9"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4337:6:9"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3852:9:9","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3863:7:9","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3875:6:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3883:6:9","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3891:6:9","type":""}],"src":"3798:619:9"},{"body":{"nodeType":"YulBlock","src":"4466:43:9","statements":[{"nodeType":"YulAssignment","src":"4476:27:9","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4491:5:9"},{"kind":"number","nodeType":"YulLiteral","src":"4498:4:9","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4487:3:9"},"nodeType":"YulFunctionCall","src":"4487:16:9"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4476:7:9"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4448:5:9","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4458:7:9","type":""}],"src":"4423:86:9"},{"body":{"nodeType":"YulBlock","src":"4576:51:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4593:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4614:5:9"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"4598:15:9"},"nodeType":"YulFunctionCall","src":"4598:22:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4586:6:9"},"nodeType":"YulFunctionCall","src":"4586:35:9"},"nodeType":"YulExpressionStatement","src":"4586:35:9"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4564:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4571:3:9","type":""}],"src":"4515:112:9"},{"body":{"nodeType":"YulBlock","src":"4727:120:9","statements":[{"nodeType":"YulAssignment","src":"4737:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4749:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"4760:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4745:3:9"},"nodeType":"YulFunctionCall","src":"4745:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4737:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4813:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4826:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"4837:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4822:3:9"},"nodeType":"YulFunctionCall","src":"4822:17:9"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulIdentifier","src":"4773:39:9"},"nodeType":"YulFunctionCall","src":"4773:67:9"},"nodeType":"YulExpressionStatement","src":"4773:67:9"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4699:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4711:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4722:4:9","type":""}],"src":"4633:214:9"},{"body":{"nodeType":"YulBlock","src":"4919:263:9","statements":[{"body":{"nodeType":"YulBlock","src":"4965:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4967:77:9"},"nodeType":"YulFunctionCall","src":"4967:79:9"},"nodeType":"YulExpressionStatement","src":"4967:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4940:7:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"4949:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4936:3:9"},"nodeType":"YulFunctionCall","src":"4936:23:9"},{"kind":"number","nodeType":"YulLiteral","src":"4961:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4932:3:9"},"nodeType":"YulFunctionCall","src":"4932:32:9"},"nodeType":"YulIf","src":"4929:119:9"},{"nodeType":"YulBlock","src":"5058:117:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5073:15:9","value":{"kind":"number","nodeType":"YulLiteral","src":"5087:1:9","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5077:6:9","type":""}]},{"nodeType":"YulAssignment","src":"5102:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5137:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"5148:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5133:3:9"},"nodeType":"YulFunctionCall","src":"5133:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5157:7:9"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5112:20:9"},"nodeType":"YulFunctionCall","src":"5112:53:9"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5102:6:9"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4889:9:9","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4900:7:9","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4912:6:9","type":""}],"src":"4853:329:9"},{"body":{"nodeType":"YulBlock","src":"5253:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5270:3:9"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5293:5:9"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"5275:17:9"},"nodeType":"YulFunctionCall","src":"5275:24:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5263:6:9"},"nodeType":"YulFunctionCall","src":"5263:37:9"},"nodeType":"YulExpressionStatement","src":"5263:37:9"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5241:5:9","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5248:3:9","type":""}],"src":"5188:118:9"},{"body":{"nodeType":"YulBlock","src":"5410:124:9","statements":[{"nodeType":"YulAssignment","src":"5420:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5432:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"5443:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5428:3:9"},"nodeType":"YulFunctionCall","src":"5428:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5420:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5500:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5513:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"5524:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5509:3:9"},"nodeType":"YulFunctionCall","src":"5509:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"5456:43:9"},"nodeType":"YulFunctionCall","src":"5456:71:9"},"nodeType":"YulExpressionStatement","src":"5456:71:9"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5382:9:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5394:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5405:4:9","type":""}],"src":"5312:222:9"},{"body":{"nodeType":"YulBlock","src":"5623:391:9","statements":[{"body":{"nodeType":"YulBlock","src":"5669:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"5671:77:9"},"nodeType":"YulFunctionCall","src":"5671:79:9"},"nodeType":"YulExpressionStatement","src":"5671:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5644:7:9"},{"name":"headStart","nodeType":"YulIdentifier","src":"5653:9:9"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5640:3:9"},"nodeType":"YulFunctionCall","src":"5640:23:9"},{"kind":"number","nodeType":"YulLiteral","src":"5665:2:9","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5636:3:9"},"nodeType":"YulFunctionCall","src":"5636:32:9"},"nodeType":"YulIf","src":"5633:119:9"},{"nodeType":"YulBlock","src":"5762:117:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5777:15:9","value":{"kind":"number","nodeType":"YulLiteral","src":"5791:1:9","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5781:6:9","type":""}]},{"nodeType":"YulAssignment","src":"5806:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5841:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"5852:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5837:3:9"},"nodeType":"YulFunctionCall","src":"5837:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5861:7:9"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5816:20:9"},"nodeType":"YulFunctionCall","src":"5816:53:9"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5806:6:9"}]}]},{"nodeType":"YulBlock","src":"5889:118:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5904:16:9","value":{"kind":"number","nodeType":"YulLiteral","src":"5918:2:9","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5908:6:9","type":""}]},{"nodeType":"YulAssignment","src":"5934:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5969:9:9"},{"name":"offset","nodeType":"YulIdentifier","src":"5980:6:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5965:3:9"},"nodeType":"YulFunctionCall","src":"5965:22:9"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5989:7:9"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5944:20:9"},"nodeType":"YulFunctionCall","src":"5944:53:9"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5934:6:9"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5585:9:9","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5596:7:9","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5608:6:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5616:6:9","type":""}],"src":"5540:474:9"},{"body":{"nodeType":"YulBlock","src":"6048:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6065:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6068:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6058:6:9"},"nodeType":"YulFunctionCall","src":"6058:88:9"},"nodeType":"YulExpressionStatement","src":"6058:88:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6162:1:9","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6165:4:9","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6155:6:9"},"nodeType":"YulFunctionCall","src":"6155:15:9"},"nodeType":"YulExpressionStatement","src":"6155:15:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6186:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6189:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6179:6:9"},"nodeType":"YulFunctionCall","src":"6179:15:9"},"nodeType":"YulExpressionStatement","src":"6179:15:9"}]},"name":"panic_error_0x22","nodeType":"YulFunctionDefinition","src":"6020:180:9"},{"body":{"nodeType":"YulBlock","src":"6257:269:9","statements":[{"nodeType":"YulAssignment","src":"6267:22:9","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6281:4:9"},{"kind":"number","nodeType":"YulLiteral","src":"6287:1:9","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6277:3:9"},"nodeType":"YulFunctionCall","src":"6277:12:9"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6267:6:9"}]},{"nodeType":"YulVariableDeclaration","src":"6298:38:9","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6328:4:9"},{"kind":"number","nodeType":"YulLiteral","src":"6334:1:9","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6324:3:9"},"nodeType":"YulFunctionCall","src":"6324:12:9"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"6302:18:9","type":""}]},{"body":{"nodeType":"YulBlock","src":"6375:51:9","statements":[{"nodeType":"YulAssignment","src":"6389:27:9","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6403:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"6411:4:9","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6399:3:9"},"nodeType":"YulFunctionCall","src":"6399:17:9"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6389:6:9"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6355:18:9"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6348:6:9"},"nodeType":"YulFunctionCall","src":"6348:26:9"},"nodeType":"YulIf","src":"6345:81:9"},{"body":{"nodeType":"YulBlock","src":"6478:42:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nodeType":"YulIdentifier","src":"6492:16:9"},"nodeType":"YulFunctionCall","src":"6492:18:9"},"nodeType":"YulExpressionStatement","src":"6492:18:9"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6442:18:9"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6465:6:9"},{"kind":"number","nodeType":"YulLiteral","src":"6473:2:9","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6462:2:9"},"nodeType":"YulFunctionCall","src":"6462:14:9"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6439:2:9"},"nodeType":"YulFunctionCall","src":"6439:38:9"},"nodeType":"YulIf","src":"6436:84:9"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"6241:4:9","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"6250:6:9","type":""}],"src":"6206:320:9"},{"body":{"nodeType":"YulBlock","src":"6686:288:9","statements":[{"nodeType":"YulAssignment","src":"6696:26:9","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6708:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"6719:2:9","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6704:3:9"},"nodeType":"YulFunctionCall","src":"6704:18:9"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6696:4:9"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6776:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6789:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"6800:1:9","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6785:3:9"},"nodeType":"YulFunctionCall","src":"6785:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"6732:43:9"},"nodeType":"YulFunctionCall","src":"6732:71:9"},"nodeType":"YulExpressionStatement","src":"6732:71:9"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6857:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6870:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"6881:2:9","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6866:3:9"},"nodeType":"YulFunctionCall","src":"6866:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"6813:43:9"},"nodeType":"YulFunctionCall","src":"6813:72:9"},"nodeType":"YulExpressionStatement","src":"6813:72:9"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6939:6:9"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6952:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"6963:2:9","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6948:3:9"},"nodeType":"YulFunctionCall","src":"6948:18:9"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"6895:43:9"},"nodeType":"YulFunctionCall","src":"6895:72:9"},"nodeType":"YulExpressionStatement","src":"6895:72:9"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6642:9:9","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6654:6:9","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6662:6:9","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6670:6:9","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6681:4:9","type":""}],"src":"6532:442:9"},{"body":{"nodeType":"YulBlock","src":"7008:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7025:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7028:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7018:6:9"},"nodeType":"YulFunctionCall","src":"7018:88:9"},"nodeType":"YulExpressionStatement","src":"7018:88:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7122:1:9","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7125:4:9","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7115:6:9"},"nodeType":"YulFunctionCall","src":"7115:15:9"},"nodeType":"YulExpressionStatement","src":"7115:15:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7146:1:9","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7149:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7139:6:9"},"nodeType":"YulFunctionCall","src":"7139:15:9"},"nodeType":"YulExpressionStatement","src":"7139:15:9"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"6980:180:9"},{"body":{"nodeType":"YulBlock","src":"7210:147:9","statements":[{"nodeType":"YulAssignment","src":"7220:25:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7243:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"7225:17:9"},"nodeType":"YulFunctionCall","src":"7225:20:9"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"7220:1:9"}]},{"nodeType":"YulAssignment","src":"7254:25:9","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"7277:1:9"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"7259:17:9"},"nodeType":"YulFunctionCall","src":"7259:20:9"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"7254:1:9"}]},{"nodeType":"YulAssignment","src":"7288:16:9","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7299:1:9"},{"name":"y","nodeType":"YulIdentifier","src":"7302:1:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7295:3:9"},"nodeType":"YulFunctionCall","src":"7295:9:9"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"7288:3:9"}]},{"body":{"nodeType":"YulBlock","src":"7328:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7330:16:9"},"nodeType":"YulFunctionCall","src":"7330:18:9"},"nodeType":"YulExpressionStatement","src":"7330:18:9"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7320:1:9"},{"name":"sum","nodeType":"YulIdentifier","src":"7323:3:9"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7317:2:9"},"nodeType":"YulFunctionCall","src":"7317:10:9"},"nodeType":"YulIf","src":"7314:36:9"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7197:1:9","type":""},{"name":"y","nodeType":"YulTypedName","src":"7200:1:9","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"7206:3:9","type":""}],"src":"7166:191:9"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\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        mstore(add(dst, length), 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610def565b60405180910390f35b61010c60048036038101906101079190610eaa565b61032e565b6040516101199190610f05565b60405180910390f35b61012a610351565b6040516101379190610f2f565b60405180910390f35b61015a60048036038101906101559190610f4a565b61035b565b6040516101679190610f05565b60405180910390f35b61017861038a565b6040516101859190610fb9565b60405180910390f35b6101a860048036038101906101a39190610eaa565b610393565b005b6101c460048036038101906101bf9190610fd4565b6103a9565b6040516101d19190610f2f565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f99190611010565b60405180910390f35b61020a61042f565b6040516102179190610def565b60405180910390f35b61023a60048036038101906102359190610eaa565b6104c1565b6040516102479190610f05565b60405180910390f35b61026a6004803603810190610265919061102b565b6104e4565b6040516102779190610f2f565b60405180910390f35b61029a60048036038101906102959190610fd4565b61056b565b005b6060600380546102ab9061109a565b80601f01602080910402602001604051908101604052809291908181526020018280546102d79061109a565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e8585856106a0565b60019150509392505050565b60006012905090565b61039b610794565b6103a5828261081b565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610794565b610403600061089d565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e9061109a565b80601f016020809104026020016040519081016040528092919081815260200182805461046a9061109a565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d98185856106a0565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610794565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc9190611010565b60405180910390fd5b6105ee8161089d565b50565b600033905090565b6106068383836001610963565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561069a578181101561068a578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610681939291906110cb565b60405180910390fd5b61069984848484036000610963565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107125760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107099190611010565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107845760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077b9190611010565b60405180910390fd5b61078f838383610b3a565b505050565b61079c6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107ba610405565b73ffffffffffffffffffffffffffffffffffffffff1614610819576107dd6105f1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108109190611010565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088d5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108849190611010565b60405180910390fd5b61089960008383610b3a565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d55760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cc9190611010565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a475760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3e9190611010565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b34578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2b9190610f2f565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8c578060026000828254610b809190611131565b92505081905550610c5f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c18578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0f939291906110cb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca85780600260008282540392505081905550610cf5565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d529190610f2f565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d99578082015181840152602081019050610d7e565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc182610d5f565b610dcb8185610d6a565b9350610ddb818560208601610d7b565b610de481610da5565b840191505092915050565b60006020820190508181036000830152610e098184610db6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4182610e16565b9050919050565b610e5181610e36565b8114610e5c57600080fd5b50565b600081359050610e6e81610e48565b92915050565b6000819050919050565b610e8781610e74565b8114610e9257600080fd5b50565b600081359050610ea481610e7e565b92915050565b60008060408385031215610ec157610ec0610e11565b5b6000610ecf85828601610e5f565b9250506020610ee085828601610e95565b9150509250929050565b60008115159050919050565b610eff81610eea565b82525050565b6000602082019050610f1a6000830184610ef6565b92915050565b610f2981610e74565b82525050565b6000602082019050610f446000830184610f20565b92915050565b600080600060608486031215610f6357610f62610e11565b5b6000610f7186828701610e5f565b9350506020610f8286828701610e5f565b9250506040610f9386828701610e95565b9150509250925092565b600060ff82169050919050565b610fb381610f9d565b82525050565b6000602082019050610fce6000830184610faa565b92915050565b600060208284031215610fea57610fe9610e11565b5b6000610ff884828501610e5f565b91505092915050565b61100a81610e36565b82525050565b60006020820190506110256000830184611001565b92915050565b6000806040838503121561104257611041610e11565b5b600061105085828601610e5f565b925050602061106185828601610e5f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b257607f821691505b6020821081036110c5576110c461106b565b5b50919050565b60006060820190506110e06000830186611001565b6110ed6020830185610f20565b6110fa6040830184610f20565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113c82610e74565b915061114783610e74565b925082820190508082111561115f5761115e611102565b5b9291505056fea2646970667358221220f9ac1ffd54c2fe21524dad7bb9ed4cdbf483536fbad5e8ce138c81753567988664736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x280 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E4 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x18E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0xF4A JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x178 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0xFB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xFD4 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E2 PUSH2 0x3F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EC PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x102B JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0xFD4 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AB SWAP1 PUSH2 0x109A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV 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 PUSH2 0x2D7 SWAP1 PUSH2 0x109A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x324 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x324 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x307 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x339 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x346 DUP2 DUP6 DUP6 PUSH2 0x5F9 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x366 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x373 DUP6 DUP3 DUP6 PUSH2 0x60B JUMP JUMPDEST PUSH2 0x37E DUP6 DUP6 DUP6 PUSH2 0x6A0 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x794 JUMP JUMPDEST PUSH2 0x3A5 DUP3 DUP3 PUSH2 0x81B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3F9 PUSH2 0x794 JUMP JUMPDEST PUSH2 0x403 PUSH1 0x0 PUSH2 0x89D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0x109A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV 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 PUSH2 0x46A SWAP1 PUSH2 0x109A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4CC PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4D9 DUP2 DUP6 DUP6 PUSH2 0x6A0 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x573 PUSH2 0x794 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5E5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DC SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE DUP2 PUSH2 0x89D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x606 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x963 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x617 DUP5 DUP5 PUSH2 0x4E4 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x69A JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x68A JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x681 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x699 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x963 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x712 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x709 SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x784 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77B SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x78F DUP4 DUP4 DUP4 PUSH2 0xB3A JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x79C PUSH2 0x5F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7BA PUSH2 0x405 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x819 JUMPI PUSH2 0x7DD PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x810 SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x88D JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x884 SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x899 PUSH1 0x0 DUP4 DUP4 PUSH2 0xB3A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9D5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CC SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA47 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3E SWAP2 SWAP1 PUSH2 0x1010 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0xB34 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB2B SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB8C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1131 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xC18 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xCA8 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xCF5 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xD52 SWAP2 SWAP1 PUSH2 0xF2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD99 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD7E JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDC1 DUP3 PUSH2 0xD5F JUMP JUMPDEST PUSH2 0xDCB DUP2 DUP6 PUSH2 0xD6A JUMP JUMPDEST SWAP4 POP PUSH2 0xDDB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD7B JUMP JUMPDEST PUSH2 0xDE4 DUP2 PUSH2 0xDA5 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE09 DUP2 DUP5 PUSH2 0xDB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE41 DUP3 PUSH2 0xE16 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE51 DUP2 PUSH2 0xE36 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE6E DUP2 PUSH2 0xE48 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE87 DUP2 PUSH2 0xE74 JUMP JUMPDEST DUP2 EQ PUSH2 0xE92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEA4 DUP2 PUSH2 0xE7E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC1 JUMPI PUSH2 0xEC0 PUSH2 0xE11 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xECF DUP6 DUP3 DUP7 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEE0 DUP6 DUP3 DUP7 ADD PUSH2 0xE95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEFF DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF1A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEF6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF29 DUP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF44 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0xE11 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF71 DUP7 DUP3 DUP8 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xF82 DUP7 DUP3 DUP8 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xF93 DUP7 DUP3 DUP8 ADD PUSH2 0xE95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFB3 DUP2 PUSH2 0xF9D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFCE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFEA JUMPI PUSH2 0xFE9 PUSH2 0xE11 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF8 DUP5 DUP3 DUP6 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x100A DUP2 PUSH2 0xE36 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1025 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1001 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1042 JUMPI PUSH2 0x1041 PUSH2 0xE11 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1050 DUP6 DUP3 DUP7 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1061 DUP6 DUP3 DUP7 ADD PUSH2 0xE5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x10B2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C5 JUMPI PUSH2 0x10C4 PUSH2 0x106B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x10E0 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1001 JUMP JUMPDEST PUSH2 0x10ED PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF20 JUMP JUMPDEST PUSH2 0x10FA PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF20 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x113C DUP3 PUSH2 0xE74 JUMP JUMPDEST SWAP2 POP PUSH2 0x1147 DUP4 PUSH2 0xE74 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x115F JUMPI PUSH2 0x115E PUSH2 0x1102 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0xAC 0x1F REVERT SLOAD 0xC2 INVALID 0x21 MSTORE 0x4D 0xAD PUSH28 0xB9ED4CDBF483536FBAD5E8CE138C81753567988664736F6C63430008 EQ STOP CALLER ","sourceMap":"174:272:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;348:95:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:2;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;348:95:8:-;1531:13:0;:11;:13::i;:::-;418:17:8::1;424:2;428:6;418:5;:17::i;:::-;348:95:::0;;:::o;2933:116:2:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1962:93:2:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:5:-;709:7;735:10;728:17;;656:96;:::o;8630:128:2:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10319:476::-;10418:24;10445:25;10455:5;10462:7;10445:9;:25::i;:::-;10418:52;;10503:17;10484:16;:36;10480:309;;;10559:5;10540:16;:24;10536:130;;;10618:7;10627:16;10645:5;10591:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10536:130;10707:57;10716:5;10723:7;10751:5;10732:16;:24;10758:5;10707:8;:57::i;:::-;10480:309;10408:387;10319:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:2:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9605:432:2:-;9734:1;9717:19;;:5;:19;;;9713:89;;9788:1;9759:32;;;;;;;;;;;:::i;:::-;;;;;;;;9713:89;9834:1;9815:21;;:7;:21;;;9811:90;;9887:1;9859:31;;;;;;;;;;;:::i;:::-;;;;;;;;9811:90;9940:5;9910:11;:18;9922:5;9910:18;;;;;;;;;;;;;;;:27;9929:7;9910:27;;;;;;;;;;;;;;;:35;;;;9959:9;9955:76;;;10005:7;9989:31;;9998:5;9989:31;;;10014:5;9989:31;;;;;;:::i;:::-;;;;;;;;9955:76;9605:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:9:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:442::-;6681:4;6719:2;6708:9;6704:18;6696:26;;6732:71;6800:1;6789:9;6785:17;6776:6;6732:71;:::i;:::-;6813:72;6881:2;6870:9;6866:18;6857:6;6813:72;:::i;:::-;6895;6963:2;6952:9;6948:18;6939:6;6895:72;:::i;:::-;6532:442;;;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"account\",\"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\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"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/KDNToken.sol\":\"KDNToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x86b7b71a6aedefdad89b607378eeab1dcc5389b9ea7d17346d08af01d7190994\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dc2db8d94a21eac8efe03adf574c419b08536409b416057a2b5b95cb772c43c\",\"dweb:/ipfs/QmZfqJCKVU1ScuX2A7s8WZdQEaikwJbDH5JBrBdKTUT4Gu\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/KDNToken.sol\":{\"keccak256\":\"0x46286526be6912592030a700efe20dc2da50328e4b651b4499f3c330f63571ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3183fc47b8902149d6ad65093e2ddf6eaa5c2e2448ace278fa920623b2df47fe\",\"dweb:/ipfs/Qmce683sxbqKe9FoDhv9vBaaWCdFU3oeqQqWsvqEMvKq7P\"]}},\"version\":1}"}}}}}