{
  "contractName": "Pausable",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xe68ed7fb8766ed1e888291f881e36b616037f852b37d96877045319ad298ba87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d491a2ca79dbf44bc02e876e21a5847a2cbcc011188532ad8662cdc1c134a4e\",\"dweb:/ipfs/QmUQXhSV8ZvHLzfdG89ZNSh1nLrAYyjnNBLznJGwGcwVk8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    bool private _paused;\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    constructor() {\n        _paused = false;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        require(!paused(), \"Pausable: paused\");\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        require(paused(), \"Pausable: not paused\");\n        _;\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n}\n",
  "sourcePath": "@openzeppelin/contracts/security/Pausable.sol",
  "ast": {
    "absolutePath": "@openzeppelin/contracts/security/Pausable.sol",
    "exportedSymbols": {
      "Context": [
        5297
      ],
      "Pausable": [
        702
      ]
    },
    "id": 703,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 612,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "90:23:5"
      },
      {
        "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
        "file": "../utils/Context.sol",
        "id": 613,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 703,
        "sourceUnit": 5298,
        "src": "115:30:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 615,
              "name": "Context",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 5297,
              "src": "617:7:5"
            },
            "id": 616,
            "nodeType": "InheritanceSpecifier",
            "src": "617:7:5"
          }
        ],
        "canonicalName": "Pausable",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 614,
          "nodeType": "StructuredDocumentation",
          "src": "147:439:5",
          "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."
        },
        "fullyImplemented": true,
        "id": 702,
        "linearizedBaseContracts": [
          702,
          5297
        ],
        "name": "Pausable",
        "nameLocation": "605:8:5",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": {
              "id": 617,
              "nodeType": "StructuredDocumentation",
              "src": "631:73:5",
              "text": " @dev Emitted when the pause is triggered by `account`."
            },
            "id": 621,
            "name": "Paused",
            "nameLocation": "715:6:5",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 620,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 619,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "730:7:5",
                  "nodeType": "VariableDeclaration",
                  "scope": 621,
                  "src": "722:15:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 618,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "722:7:5",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "721:17:5"
            },
            "src": "709:30:5"
          },
          {
            "anonymous": false,
            "documentation": {
              "id": 622,
              "nodeType": "StructuredDocumentation",
              "src": "745:70:5",
              "text": " @dev Emitted when the pause is lifted by `account`."
            },
            "id": 626,
            "name": "Unpaused",
            "nameLocation": "826:8:5",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 625,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 624,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "843:7:5",
                  "nodeType": "VariableDeclaration",
                  "scope": 626,
                  "src": "835:15:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 623,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "835:7:5",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "834:17:5"
            },
            "src": "820:32:5"
          },
          {
            "constant": false,
            "id": 628,
            "mutability": "mutable",
            "name": "_paused",
            "nameLocation": "871:7:5",
            "nodeType": "VariableDeclaration",
            "scope": 702,
            "src": "858:20:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 627,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "858:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 636,
              "nodeType": "Block",
              "src": "971:32:5",
              "statements": [
                {
                  "expression": {
                    "id": 634,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 632,
                      "name": "_paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 628,
                      "src": "981:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "66616c7365",
                      "id": 633,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "991:5:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "981:15:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 635,
                  "nodeType": "ExpressionStatement",
                  "src": "981:15:5"
                }
              ]
            },
            "documentation": {
              "id": 629,
              "nodeType": "StructuredDocumentation",
              "src": "885:67:5",
              "text": " @dev Initializes the contract in unpaused state."
            },
            "id": 637,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 630,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "968:2:5"
            },
            "returnParameters": {
              "id": 631,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "971:0:5"
            },
            "scope": 702,
            "src": "957:46:5",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 645,
              "nodeType": "Block",
              "src": "1151:31:5",
              "statements": [
                {
                  "expression": {
                    "id": 643,
                    "name": "_paused",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 628,
                    "src": "1168:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 642,
                  "id": 644,
                  "nodeType": "Return",
                  "src": "1161:14:5"
                }
              ]
            },
            "documentation": {
              "id": 638,
              "nodeType": "StructuredDocumentation",
              "src": "1009:84:5",
              "text": " @dev Returns true if the contract is paused, and false otherwise."
            },
            "functionSelector": "5c975abb",
            "id": 646,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "paused",
            "nameLocation": "1107:6:5",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 639,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1113:2:5"
            },
            "returnParameters": {
              "id": 642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 641,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 646,
                  "src": "1145:4:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 640,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1145:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1144:6:5"
            },
            "scope": 702,
            "src": "1098:84:5",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 657,
              "nodeType": "Block",
              "src": "1393:66:5",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 652,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1411:9:5",
                        "subExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 650,
                            "name": "paused",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 646,
                            "src": "1412:6:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                              "typeString": "function () view returns (bool)"
                            }
                          },
                          "id": 651,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1412:8:5",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "5061757361626c653a20706175736564",
                        "id": 653,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1422:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a",
                          "typeString": "literal_string \"Pausable: paused\""
                        },
                        "value": "Pausable: paused"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a",
                          "typeString": "literal_string \"Pausable: paused\""
                        }
                      ],
                      "id": 649,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1403:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1403:38:5",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 655,
                  "nodeType": "ExpressionStatement",
                  "src": "1403:38:5"
                },
                {
                  "id": 656,
                  "nodeType": "PlaceholderStatement",
                  "src": "1451:1:5"
                }
              ]
            },
            "documentation": {
              "id": 647,
              "nodeType": "StructuredDocumentation",
              "src": "1188:175:5",
              "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."
            },
            "id": 658,
            "name": "whenNotPaused",
            "nameLocation": "1377:13:5",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 648,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1390:2:5"
            },
            "src": "1368:91:5",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 668,
              "nodeType": "Block",
              "src": "1659:69:5",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 662,
                          "name": "paused",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 646,
                          "src": "1677:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 663,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1677:8:5",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "5061757361626c653a206e6f7420706175736564",
                        "id": 664,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1687:22:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a",
                          "typeString": "literal_string \"Pausable: not paused\""
                        },
                        "value": "Pausable: not paused"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a",
                          "typeString": "literal_string \"Pausable: not paused\""
                        }
                      ],
                      "id": 661,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1669:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 665,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1669:41:5",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 666,
                  "nodeType": "ExpressionStatement",
                  "src": "1669:41:5"
                },
                {
                  "id": 667,
                  "nodeType": "PlaceholderStatement",
                  "src": "1720:1:5"
                }
              ]
            },
            "documentation": {
              "id": 659,
              "nodeType": "StructuredDocumentation",
              "src": "1465:167:5",
              "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."
            },
            "id": 669,
            "name": "whenPaused",
            "nameLocation": "1646:10:5",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 660,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1656:2:5"
            },
            "src": "1637:91:5",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 684,
              "nodeType": "Block",
              "src": "1912:66:5",
              "statements": [
                {
                  "expression": {
                    "id": 677,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 675,
                      "name": "_paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 628,
                      "src": "1922:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 676,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1932:4:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1922:14:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 678,
                  "nodeType": "ExpressionStatement",
                  "src": "1922:14:5"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 680,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5287,
                          "src": "1958:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 681,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1958:12:5",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 679,
                      "name": "Paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 621,
                      "src": "1951:6:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1951:20:5",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 683,
                  "nodeType": "EmitStatement",
                  "src": "1946:25:5"
                }
              ]
            },
            "documentation": {
              "id": 670,
              "nodeType": "StructuredDocumentation",
              "src": "1734:124:5",
              "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."
            },
            "id": 685,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 673,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 672,
                  "name": "whenNotPaused",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 658,
                  "src": "1898:13:5"
                },
                "nodeType": "ModifierInvocation",
                "src": "1898:13:5"
              }
            ],
            "name": "_pause",
            "nameLocation": "1872:6:5",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 671,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1878:2:5"
            },
            "returnParameters": {
              "id": 674,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1912:0:5"
            },
            "scope": 702,
            "src": "1863:115:5",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 700,
              "nodeType": "Block",
              "src": "2158:69:5",
              "statements": [
                {
                  "expression": {
                    "id": 693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 691,
                      "name": "_paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 628,
                      "src": "2168:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "66616c7365",
                      "id": 692,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2178:5:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2168:15:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 694,
                  "nodeType": "ExpressionStatement",
                  "src": "2168:15:5"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 696,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5287,
                          "src": "2207:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2207:12:5",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 695,
                      "name": "Unpaused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 626,
                      "src": "2198:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2198:22:5",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 699,
                  "nodeType": "EmitStatement",
                  "src": "2193:27:5"
                }
              ]
            },
            "documentation": {
              "id": 686,
              "nodeType": "StructuredDocumentation",
              "src": "1984:121:5",
              "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused."
            },
            "id": 701,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 689,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 688,
                  "name": "whenPaused",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 669,
                  "src": "2147:10:5"
                },
                "nodeType": "ModifierInvocation",
                "src": "2147:10:5"
              }
            ],
            "name": "_unpause",
            "nameLocation": "2119:8:5",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 687,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2127:2:5"
            },
            "returnParameters": {
              "id": 690,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2158:0:5"
            },
            "scope": 702,
            "src": "2110:117:5",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 703,
        "src": "587:1642:5",
        "usedErrors": []
      }
    ],
    "src": "90:2140:5"
  },
  "legacyAST": {
    "absolutePath": "@openzeppelin/contracts/security/Pausable.sol",
    "exportedSymbols": {
      "Context": [
        5297
      ],
      "Pausable": [
        702
      ]
    },
    "id": 703,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 612,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "90:23:5"
      },
      {
        "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
        "file": "../utils/Context.sol",
        "id": 613,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 703,
        "sourceUnit": 5298,
        "src": "115:30:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 615,
              "name": "Context",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 5297,
              "src": "617:7:5"
            },
            "id": 616,
            "nodeType": "InheritanceSpecifier",
            "src": "617:7:5"
          }
        ],
        "canonicalName": "Pausable",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 614,
          "nodeType": "StructuredDocumentation",
          "src": "147:439:5",
          "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."
        },
        "fullyImplemented": true,
        "id": 702,
        "linearizedBaseContracts": [
          702,
          5297
        ],
        "name": "Pausable",
        "nameLocation": "605:8:5",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": {
              "id": 617,
              "nodeType": "StructuredDocumentation",
              "src": "631:73:5",
              "text": " @dev Emitted when the pause is triggered by `account`."
            },
            "id": 621,
            "name": "Paused",
            "nameLocation": "715:6:5",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 620,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 619,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "730:7:5",
                  "nodeType": "VariableDeclaration",
                  "scope": 621,
                  "src": "722:15:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 618,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "722:7:5",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "721:17:5"
            },
            "src": "709:30:5"
          },
          {
            "anonymous": false,
            "documentation": {
              "id": 622,
              "nodeType": "StructuredDocumentation",
              "src": "745:70:5",
              "text": " @dev Emitted when the pause is lifted by `account`."
            },
            "id": 626,
            "name": "Unpaused",
            "nameLocation": "826:8:5",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 625,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 624,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "843:7:5",
                  "nodeType": "VariableDeclaration",
                  "scope": 626,
                  "src": "835:15:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 623,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "835:7:5",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "834:17:5"
            },
            "src": "820:32:5"
          },
          {
            "constant": false,
            "id": 628,
            "mutability": "mutable",
            "name": "_paused",
            "nameLocation": "871:7:5",
            "nodeType": "VariableDeclaration",
            "scope": 702,
            "src": "858:20:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 627,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "858:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 636,
              "nodeType": "Block",
              "src": "971:32:5",
              "statements": [
                {
                  "expression": {
                    "id": 634,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 632,
                      "name": "_paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 628,
                      "src": "981:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "66616c7365",
                      "id": 633,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "991:5:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "981:15:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 635,
                  "nodeType": "ExpressionStatement",
                  "src": "981:15:5"
                }
              ]
            },
            "documentation": {
              "id": 629,
              "nodeType": "StructuredDocumentation",
              "src": "885:67:5",
              "text": " @dev Initializes the contract in unpaused state."
            },
            "id": 637,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 630,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "968:2:5"
            },
            "returnParameters": {
              "id": 631,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "971:0:5"
            },
            "scope": 702,
            "src": "957:46:5",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 645,
              "nodeType": "Block",
              "src": "1151:31:5",
              "statements": [
                {
                  "expression": {
                    "id": 643,
                    "name": "_paused",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 628,
                    "src": "1168:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 642,
                  "id": 644,
                  "nodeType": "Return",
                  "src": "1161:14:5"
                }
              ]
            },
            "documentation": {
              "id": 638,
              "nodeType": "StructuredDocumentation",
              "src": "1009:84:5",
              "text": " @dev Returns true if the contract is paused, and false otherwise."
            },
            "functionSelector": "5c975abb",
            "id": 646,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "paused",
            "nameLocation": "1107:6:5",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 639,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1113:2:5"
            },
            "returnParameters": {
              "id": 642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 641,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 646,
                  "src": "1145:4:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 640,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1145:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1144:6:5"
            },
            "scope": 702,
            "src": "1098:84:5",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 657,
              "nodeType": "Block",
              "src": "1393:66:5",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 652,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1411:9:5",
                        "subExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 650,
                            "name": "paused",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 646,
                            "src": "1412:6:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                              "typeString": "function () view returns (bool)"
                            }
                          },
                          "id": 651,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1412:8:5",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "5061757361626c653a20706175736564",
                        "id": 653,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1422:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a",
                          "typeString": "literal_string \"Pausable: paused\""
                        },
                        "value": "Pausable: paused"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a",
                          "typeString": "literal_string \"Pausable: paused\""
                        }
                      ],
                      "id": 649,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1403:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1403:38:5",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 655,
                  "nodeType": "ExpressionStatement",
                  "src": "1403:38:5"
                },
                {
                  "id": 656,
                  "nodeType": "PlaceholderStatement",
                  "src": "1451:1:5"
                }
              ]
            },
            "documentation": {
              "id": 647,
              "nodeType": "StructuredDocumentation",
              "src": "1188:175:5",
              "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."
            },
            "id": 658,
            "name": "whenNotPaused",
            "nameLocation": "1377:13:5",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 648,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1390:2:5"
            },
            "src": "1368:91:5",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 668,
              "nodeType": "Block",
              "src": "1659:69:5",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 662,
                          "name": "paused",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 646,
                          "src": "1677:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 663,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1677:8:5",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "5061757361626c653a206e6f7420706175736564",
                        "id": 664,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1687:22:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a",
                          "typeString": "literal_string \"Pausable: not paused\""
                        },
                        "value": "Pausable: not paused"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a",
                          "typeString": "literal_string \"Pausable: not paused\""
                        }
                      ],
                      "id": 661,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1669:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 665,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1669:41:5",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 666,
                  "nodeType": "ExpressionStatement",
                  "src": "1669:41:5"
                },
                {
                  "id": 667,
                  "nodeType": "PlaceholderStatement",
                  "src": "1720:1:5"
                }
              ]
            },
            "documentation": {
              "id": 659,
              "nodeType": "StructuredDocumentation",
              "src": "1465:167:5",
              "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."
            },
            "id": 669,
            "name": "whenPaused",
            "nameLocation": "1646:10:5",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 660,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1656:2:5"
            },
            "src": "1637:91:5",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 684,
              "nodeType": "Block",
              "src": "1912:66:5",
              "statements": [
                {
                  "expression": {
                    "id": 677,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 675,
                      "name": "_paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 628,
                      "src": "1922:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 676,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1932:4:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1922:14:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 678,
                  "nodeType": "ExpressionStatement",
                  "src": "1922:14:5"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 680,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5287,
                          "src": "1958:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 681,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1958:12:5",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 679,
                      "name": "Paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 621,
                      "src": "1951:6:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1951:20:5",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 683,
                  "nodeType": "EmitStatement",
                  "src": "1946:25:5"
                }
              ]
            },
            "documentation": {
              "id": 670,
              "nodeType": "StructuredDocumentation",
              "src": "1734:124:5",
              "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."
            },
            "id": 685,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 673,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 672,
                  "name": "whenNotPaused",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 658,
                  "src": "1898:13:5"
                },
                "nodeType": "ModifierInvocation",
                "src": "1898:13:5"
              }
            ],
            "name": "_pause",
            "nameLocation": "1872:6:5",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 671,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1878:2:5"
            },
            "returnParameters": {
              "id": 674,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1912:0:5"
            },
            "scope": 702,
            "src": "1863:115:5",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 700,
              "nodeType": "Block",
              "src": "2158:69:5",
              "statements": [
                {
                  "expression": {
                    "id": 693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 691,
                      "name": "_paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 628,
                      "src": "2168:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "66616c7365",
                      "id": 692,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2178:5:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2168:15:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 694,
                  "nodeType": "ExpressionStatement",
                  "src": "2168:15:5"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 696,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5287,
                          "src": "2207:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2207:12:5",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 695,
                      "name": "Unpaused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 626,
                      "src": "2198:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2198:22:5",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 699,
                  "nodeType": "EmitStatement",
                  "src": "2193:27:5"
                }
              ]
            },
            "documentation": {
              "id": 686,
              "nodeType": "StructuredDocumentation",
              "src": "1984:121:5",
              "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused."
            },
            "id": 701,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 689,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 688,
                  "name": "whenPaused",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 669,
                  "src": "2147:10:5"
                },
                "nodeType": "ModifierInvocation",
                "src": "2147:10:5"
              }
            ],
            "name": "_unpause",
            "nameLocation": "2119:8:5",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 687,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2127:2:5"
            },
            "returnParameters": {
              "id": 690,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2158:0:5"
            },
            "scope": 702,
            "src": "2110:117:5",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 703,
        "src": "587:1642:5",
        "usedErrors": []
      }
    ],
    "src": "90:2140:5"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.11+commit.d7f03943.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.4",
  "updatedAt": "2022-03-06T23:47:10.979Z",
  "devdoc": {
    "details": "Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.",
    "events": {
      "Paused(address)": {
        "details": "Emitted when the pause is triggered by `account`."
      },
      "Unpaused(address)": {
        "details": "Emitted when the pause is lifted by `account`."
      }
    },
    "kind": "dev",
    "methods": {
      "constructor": {
        "details": "Initializes the contract in unpaused state."
      },
      "paused()": {
        "details": "Returns true if the contract is paused, and false otherwise."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}