{
  "abi": [],
  "bytecode": {
    "object": "0x602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a",
    "sourceMap": "753:8645:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a",
    "sourceMap": "753:8645:20:-:0;;;;;;;;",
    "linkReferences": {}
  },
  "methodIdentifiers": {},
  "ast": {
    "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol",
    "id": 26184,
    "exportedSymbols": {
      "EnumerableSetUpgradeable": [
        26183
      ]
    },
    "nodeType": "SourceUnit",
    "src": "33:9366:20",
    "nodes": [
      {
        "id": 25693,
        "nodeType": "PragmaDirective",
        "src": "33:31:20",
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".0",
          "<",
          "0.8",
          ".0"
        ]
      },
      {
        "id": 26183,
        "nodeType": "ContractDefinition",
        "src": "753:8645:20",
        "nodes": [
          {
            "id": 25702,
            "nodeType": "StructDefinition",
            "src": "1232:249:20",
            "canonicalName": "EnumerableSetUpgradeable.Set",
            "members": [
              {
                "constant": false,
                "id": 25697,
                "mutability": "mutable",
                "name": "_values",
                "nodeType": "VariableDeclaration",
                "scope": 25702,
                "src": "1286:17:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 25695,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1286:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 25696,
                  "nodeType": "ArrayTypeName",
                  "src": "1286:9:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 25701,
                "mutability": "mutable",
                "name": "_indexes",
                "nodeType": "VariableDeclaration",
                "scope": 25702,
                "src": "1437:37:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 25700,
                  "keyType": {
                    "id": 25698,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1446:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1437:28:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 25699,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1457:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Set",
            "scope": 26183,
            "visibility": "public"
          },
          {
            "id": 25743,
            "nodeType": "FunctionDefinition",
            "src": "1651:404:20",
            "body": {
              "id": 25742,
              "nodeType": "Block",
              "src": "1720:335:20",
              "statements": [
                {
                  "condition": {
                    "id": 25716,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "1734:22:20",
                    "subExpression": {
                      "arguments": [
                        {
                          "id": 25713,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25705,
                          "src": "1745:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                          }
                        },
                        {
                          "id": 25714,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25707,
                          "src": "1750:5:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 25712,
                        "name": "_contains",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25841,
                        "src": "1735:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 25715,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1735:21:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 25740,
                    "nodeType": "Block",
                    "src": "2012:37:20",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 25738,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2033:5:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 25711,
                        "id": 25739,
                        "nodeType": "Return",
                        "src": "2026:12:20"
                      }
                    ]
                  },
                  "id": 25741,
                  "nodeType": "IfStatement",
                  "src": "1730:319:20",
                  "trueBody": {
                    "id": 25737,
                    "nodeType": "Block",
                    "src": "1758:248:20",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 25722,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25707,
                              "src": "1789:5:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 25717,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25705,
                                "src": "1772:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                  "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                                }
                              },
                              "id": 25720,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25697,
                              "src": "1772:11:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 25721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "src": "1772:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 25723,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1772:23:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25724,
                        "nodeType": "ExpressionStatement",
                        "src": "1772:23:20"
                      },
                      {
                        "expression": {
                          "id": 25733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 25725,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25705,
                                "src": "1930:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                  "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                                }
                              },
                              "id": 25728,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25701,
                              "src": "1930:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 25729,
                            "indexExpression": {
                              "id": 25727,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25707,
                              "src": "1943:5:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1930:19:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "expression": {
                                "id": 25730,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25705,
                                "src": "1952:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                  "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                                }
                              },
                              "id": 25731,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25697,
                              "src": "1952:11:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 25732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "1952:18:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1930:40:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25734,
                        "nodeType": "ExpressionStatement",
                        "src": "1930:40:20"
                      },
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 25735,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1991:4:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 25711,
                        "id": 25736,
                        "nodeType": "Return",
                        "src": "1984:11:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 25703,
              "nodeType": "StructuredDocumentation",
              "src": "1487:159:20",
              "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_add",
            "parameters": {
              "id": 25708,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25705,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25743,
                  "src": "1665:15:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Set"
                  },
                  "typeName": {
                    "id": 25704,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25702,
                    "src": "1665:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25707,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25743,
                  "src": "1682:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25706,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1682:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1664:32:20"
            },
            "returnParameters": {
              "id": 25711,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25710,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25743,
                  "src": "1714:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25709,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1714:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1713:6:20"
            },
            "scope": 26183,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25823,
            "nodeType": "FunctionDefinition",
            "src": "2223:1512:20",
            "body": {
              "id": 25822,
              "nodeType": "Block",
              "src": "2295:1440:20",
              "statements": [
                {
                  "assignments": [
                    25754
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25754,
                      "mutability": "mutable",
                      "name": "valueIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 25822,
                      "src": "2405:18:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 25753,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2405:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25759,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 25755,
                        "name": "set",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25746,
                        "src": "2426:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                        }
                      },
                      "id": 25756,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25701,
                      "src": "2426:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 25758,
                    "indexExpression": {
                      "id": 25757,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25748,
                      "src": "2439:5:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2426:19:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2405:40:20"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 25762,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 25760,
                      "name": "valueIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25754,
                      "src": "2460:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 25761,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2474:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2460:15:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 25820,
                    "nodeType": "Block",
                    "src": "3692:37:20",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 25818,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3713:5:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 25752,
                        "id": 25819,
                        "nodeType": "Return",
                        "src": "3706:12:20"
                      }
                    ]
                  },
                  "id": 25821,
                  "nodeType": "IfStatement",
                  "src": "2456:1273:20",
                  "trueBody": {
                    "id": 25817,
                    "nodeType": "Block",
                    "src": "2477:1209:20",
                    "statements": [
                      {
                        "assignments": [
                          25764
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 25764,
                            "mutability": "mutable",
                            "name": "toDeleteIndex",
                            "nodeType": "VariableDeclaration",
                            "scope": 25817,
                            "src": "2817:21:20",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 25763,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2817:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 25768,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 25767,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 25765,
                            "name": "valueIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25754,
                            "src": "2841:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 25766,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2854:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "2841:14:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2817:38:20"
                      },
                      {
                        "assignments": [
                          25770
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 25770,
                            "mutability": "mutable",
                            "name": "lastIndex",
                            "nodeType": "VariableDeclaration",
                            "scope": 25817,
                            "src": "2869:17:20",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 25769,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2869:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 25776,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 25775,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "expression": {
                                "id": 25771,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25746,
                                "src": "2889:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                  "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                                }
                              },
                              "id": 25772,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25697,
                              "src": "2889:11:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 25773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "2889:18:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 25774,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2910:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "2889:22:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2869:42:20"
                      },
                      {
                        "assignments": [
                          25778
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 25778,
                            "mutability": "mutable",
                            "name": "lastvalue",
                            "nodeType": "VariableDeclaration",
                            "scope": 25817,
                            "src": "3151:17:20",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 25777,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "3151:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 25783,
                        "initialValue": {
                          "baseExpression": {
                            "expression": {
                              "id": 25779,
                              "name": "set",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25746,
                              "src": "3171:3:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                              }
                            },
                            "id": 25780,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_values",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25697,
                            "src": "3171:11:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 25782,
                          "indexExpression": {
                            "id": 25781,
                            "name": "lastIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25770,
                            "src": "3183:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3171:22:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3151:42:20"
                      },
                      {
                        "expression": {
                          "id": 25790,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 25784,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25746,
                                "src": "3285:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                  "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                                }
                              },
                              "id": 25787,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25697,
                              "src": "3285:11:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 25788,
                            "indexExpression": {
                              "id": 25786,
                              "name": "toDeleteIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25764,
                              "src": "3297:13:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3285:26:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 25789,
                            "name": "lastvalue",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25778,
                            "src": "3314:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3285:38:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 25791,
                        "nodeType": "ExpressionStatement",
                        "src": "3285:38:20"
                      },
                      {
                        "expression": {
                          "id": 25800,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 25792,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25746,
                                "src": "3389:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                  "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                                }
                              },
                              "id": 25795,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25701,
                              "src": "3389:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 25796,
                            "indexExpression": {
                              "id": 25794,
                              "name": "lastvalue",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25778,
                              "src": "3402:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3389:23:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 25799,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 25797,
                              "name": "toDeleteIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25764,
                              "src": "3415:13:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 25798,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3431:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "3415:17:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3389:43:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25801,
                        "nodeType": "ExpressionStatement",
                        "src": "3389:43:20"
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 25802,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25746,
                                "src": "3538:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                  "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                                }
                              },
                              "id": 25805,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25697,
                              "src": "3538:11:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 25806,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "pop",
                            "nodeType": "MemberAccess",
                            "src": "3538:15:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 25807,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3538:17:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25808,
                        "nodeType": "ExpressionStatement",
                        "src": "3538:17:20"
                      },
                      {
                        "expression": {
                          "id": 25813,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "3623:26:20",
                          "subExpression": {
                            "baseExpression": {
                              "expression": {
                                "id": 25809,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25746,
                                "src": "3630:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                  "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                                }
                              },
                              "id": 25810,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25701,
                              "src": "3630:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 25812,
                            "indexExpression": {
                              "id": 25811,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25748,
                              "src": "3643:5:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3630:19:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25814,
                        "nodeType": "ExpressionStatement",
                        "src": "3623:26:20"
                      },
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 25815,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3671:4:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 25752,
                        "id": 25816,
                        "nodeType": "Return",
                        "src": "3664:11:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 25744,
              "nodeType": "StructuredDocumentation",
              "src": "2061:157:20",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_remove",
            "parameters": {
              "id": 25749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25746,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25823,
                  "src": "2240:15:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Set"
                  },
                  "typeName": {
                    "id": 25745,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25702,
                    "src": "2240:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25748,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25823,
                  "src": "2257:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2257:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2239:32:20"
            },
            "returnParameters": {
              "id": 25752,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25751,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25823,
                  "src": "2289:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25750,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2289:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2288:6:20"
            },
            "scope": 26183,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25841,
            "nodeType": "FunctionDefinition",
            "src": "3816:127:20",
            "body": {
              "id": 25840,
              "nodeType": "Block",
              "src": "3895:48:20",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 25838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "expression": {
                          "id": 25833,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25826,
                          "src": "3912:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                          }
                        },
                        "id": 25834,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25701,
                        "src": "3912:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 25836,
                      "indexExpression": {
                        "id": 25835,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25828,
                        "src": "3925:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3912:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 25837,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3935:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3912:24:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25832,
                  "id": 25839,
                  "nodeType": "Return",
                  "src": "3905:31:20"
                }
              ]
            },
            "documentation": {
              "id": 25824,
              "nodeType": "StructuredDocumentation",
              "src": "3741:70:20",
              "text": " @dev Returns true if the value is in the set. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_contains",
            "parameters": {
              "id": 25829,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25826,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25841,
                  "src": "3835:15:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Set"
                  },
                  "typeName": {
                    "id": 25825,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25702,
                    "src": "3835:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25828,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25841,
                  "src": "3852:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25827,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3852:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3834:32:20"
            },
            "returnParameters": {
              "id": 25832,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25831,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25841,
                  "src": "3889:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25830,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3889:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3888:6:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25854,
            "nodeType": "FunctionDefinition",
            "src": "4024:107:20",
            "body": {
              "id": 25853,
              "nodeType": "Block",
              "src": "4089:42:20",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "expression": {
                        "id": 25849,
                        "name": "set",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25844,
                        "src": "4106:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                        }
                      },
                      "id": 25850,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_values",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25697,
                      "src": "4106:11:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 25851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "4106:18:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 25848,
                  "id": 25852,
                  "nodeType": "Return",
                  "src": "4099:25:20"
                }
              ]
            },
            "documentation": {
              "id": 25842,
              "nodeType": "StructuredDocumentation",
              "src": "3949:70:20",
              "text": " @dev Returns the number of values on the set. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_length",
            "parameters": {
              "id": 25845,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25844,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25854,
                  "src": "4041:15:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Set"
                  },
                  "typeName": {
                    "id": 25843,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25702,
                    "src": "4041:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Set"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4040:17:20"
            },
            "returnParameters": {
              "id": 25848,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25847,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25854,
                  "src": "4080:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25846,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4080:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4079:9:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25879,
            "nodeType": "FunctionDefinition",
            "src": "4463:201:20",
            "body": {
              "id": 25878,
              "nodeType": "Block",
              "src": "4539:125:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25869,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "expression": {
                              "id": 25865,
                              "name": "set",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25857,
                              "src": "4557:3:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                                "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                              }
                            },
                            "id": 25866,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_values",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25697,
                            "src": "4557:11:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 25867,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4557:18:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "id": 25868,
                          "name": "index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25859,
                          "src": "4578:5:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4557:26:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473",
                        "id": 25870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4585:36:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb",
                          "typeString": "literal_string \"EnumerableSet: index out of bounds\""
                        },
                        "value": "EnumerableSet: index out of bounds"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb",
                          "typeString": "literal_string \"EnumerableSet: index out of bounds\""
                        }
                      ],
                      "id": 25864,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "4549:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 25871,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4549:73:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25872,
                  "nodeType": "ExpressionStatement",
                  "src": "4549:73:20"
                },
                {
                  "expression": {
                    "baseExpression": {
                      "expression": {
                        "id": 25873,
                        "name": "set",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25857,
                        "src": "4639:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage pointer"
                        }
                      },
                      "id": 25874,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_values",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25697,
                      "src": "4639:11:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 25876,
                    "indexExpression": {
                      "id": 25875,
                      "name": "index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25859,
                      "src": "4651:5:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4639:18:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 25863,
                  "id": 25877,
                  "nodeType": "Return",
                  "src": "4632:25:20"
                }
              ]
            },
            "documentation": {
              "id": 25855,
              "nodeType": "StructuredDocumentation",
              "src": "4136:322:20",
              "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_at",
            "parameters": {
              "id": 25860,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25857,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25879,
                  "src": "4476:15:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Set"
                  },
                  "typeName": {
                    "id": 25856,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25702,
                    "src": "4476:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25859,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25879,
                  "src": "4493:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25858,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4493:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4475:32:20"
            },
            "returnParameters": {
              "id": 25863,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25862,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25879,
                  "src": "4530:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25861,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4530:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4529:9:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25882,
            "nodeType": "StructDefinition",
            "src": "4689:45:20",
            "canonicalName": "EnumerableSetUpgradeable.Bytes32Set",
            "members": [
              {
                "constant": false,
                "id": 25881,
                "mutability": "mutable",
                "name": "_inner",
                "nodeType": "VariableDeclaration",
                "scope": 25882,
                "src": "4717:10:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                  "typeString": "struct EnumerableSetUpgradeable.Set"
                },
                "typeName": {
                  "id": 25880,
                  "name": "Set",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 25702,
                  "src": "4717:3:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Set"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Bytes32Set",
            "scope": 26183,
            "visibility": "public"
          },
          {
            "id": 25899,
            "nodeType": "FunctionDefinition",
            "src": "4904:123:20",
            "body": {
              "id": 25898,
              "nodeType": "Block",
              "src": "4980:47:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25893,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25885,
                          "src": "5002:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer"
                          }
                        },
                        "id": 25894,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25881,
                        "src": "5002:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "id": 25895,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25887,
                        "src": "5014:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 25892,
                      "name": "_add",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25743,
                      "src": "4997:4:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 25896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4997:23:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25891,
                  "id": 25897,
                  "nodeType": "Return",
                  "src": "4990:30:20"
                }
              ]
            },
            "documentation": {
              "id": 25883,
              "nodeType": "StructuredDocumentation",
              "src": "4740:159:20",
              "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "add",
            "parameters": {
              "id": 25888,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25885,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25899,
                  "src": "4917:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                  },
                  "typeName": {
                    "id": 25884,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25882,
                    "src": "4917:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25887,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25899,
                  "src": "4941:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25886,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4941:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4916:39:20"
            },
            "returnParameters": {
              "id": 25891,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25890,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25899,
                  "src": "4974:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25889,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4974:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4973:6:20"
            },
            "scope": 26183,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25916,
            "nodeType": "FunctionDefinition",
            "src": "5195:129:20",
            "body": {
              "id": 25915,
              "nodeType": "Block",
              "src": "5274:50:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25910,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25902,
                          "src": "5299:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer"
                          }
                        },
                        "id": 25911,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25881,
                        "src": "5299:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "id": 25912,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25904,
                        "src": "5311:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 25909,
                      "name": "_remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25823,
                      "src": "5291:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 25913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5291:26:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25908,
                  "id": 25914,
                  "nodeType": "Return",
                  "src": "5284:33:20"
                }
              ]
            },
            "documentation": {
              "id": 25900,
              "nodeType": "StructuredDocumentation",
              "src": "5033:157:20",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "remove",
            "parameters": {
              "id": 25905,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25902,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25916,
                  "src": "5211:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                  },
                  "typeName": {
                    "id": 25901,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25882,
                    "src": "5211:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25904,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25916,
                  "src": "5235:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25903,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5235:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5210:39:20"
            },
            "returnParameters": {
              "id": 25908,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25907,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25916,
                  "src": "5268:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25906,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5268:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5267:6:20"
            },
            "scope": 26183,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25933,
            "nodeType": "FunctionDefinition",
            "src": "5405:138:20",
            "body": {
              "id": 25932,
              "nodeType": "Block",
              "src": "5491:52:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25927,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25919,
                          "src": "5518:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer"
                          }
                        },
                        "id": 25928,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25881,
                        "src": "5518:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "id": 25929,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25921,
                        "src": "5530:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 25926,
                      "name": "_contains",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25841,
                      "src": "5508:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 25930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5508:28:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25925,
                  "id": 25931,
                  "nodeType": "Return",
                  "src": "5501:35:20"
                }
              ]
            },
            "documentation": {
              "id": 25917,
              "nodeType": "StructuredDocumentation",
              "src": "5330:70:20",
              "text": " @dev Returns true if the value is in the set. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "parameters": {
              "id": 25922,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25919,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25933,
                  "src": "5423:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                  },
                  "typeName": {
                    "id": 25918,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25882,
                    "src": "5423:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25921,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25933,
                  "src": "5447:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25920,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5447:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5422:39:20"
            },
            "returnParameters": {
              "id": 25925,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25924,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25933,
                  "src": "5485:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25923,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5485:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5484:6:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25947,
            "nodeType": "FunctionDefinition",
            "src": "5624:115:20",
            "body": {
              "id": 25946,
              "nodeType": "Block",
              "src": "5696:43:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25942,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25936,
                          "src": "5721:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer"
                          }
                        },
                        "id": 25943,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25881,
                        "src": "5721:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      ],
                      "id": 25941,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25854,
                      "src": "5713:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 25944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5713:19:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 25940,
                  "id": 25945,
                  "nodeType": "Return",
                  "src": "5706:26:20"
                }
              ]
            },
            "documentation": {
              "id": 25934,
              "nodeType": "StructuredDocumentation",
              "src": "5549:70:20",
              "text": " @dev Returns the number of values in the set. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "parameters": {
              "id": 25937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25936,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25947,
                  "src": "5640:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                  },
                  "typeName": {
                    "id": 25935,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25882,
                    "src": "5640:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5639:24:20"
            },
            "returnParameters": {
              "id": 25940,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25939,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25947,
                  "src": "5687:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25938,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5687:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5686:9:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25964,
            "nodeType": "FunctionDefinition",
            "src": "6071:129:20",
            "body": {
              "id": 25963,
              "nodeType": "Block",
              "src": "6154:46:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25958,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25950,
                          "src": "6175:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer"
                          }
                        },
                        "id": 25959,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25881,
                        "src": "6175:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "id": 25960,
                        "name": "index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25952,
                        "src": "6187:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 25957,
                      "name": "_at",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25879,
                      "src": "6171:3:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)"
                      }
                    },
                    "id": 25961,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6171:22:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 25956,
                  "id": 25962,
                  "nodeType": "Return",
                  "src": "6164:29:20"
                }
              ]
            },
            "documentation": {
              "id": 25948,
              "nodeType": "StructuredDocumentation",
              "src": "5744:322:20",
              "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "parameters": {
              "id": 25953,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25950,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25964,
                  "src": "6083:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                  },
                  "typeName": {
                    "id": 25949,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25882,
                    "src": "6083:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$25882_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25952,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25964,
                  "src": "6107:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25951,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6107:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6082:39:20"
            },
            "returnParameters": {
              "id": 25956,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25955,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25964,
                  "src": "6145:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25954,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6145:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6144:9:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25967,
            "nodeType": "StructDefinition",
            "src": "6225:45:20",
            "canonicalName": "EnumerableSetUpgradeable.AddressSet",
            "members": [
              {
                "constant": false,
                "id": 25966,
                "mutability": "mutable",
                "name": "_inner",
                "nodeType": "VariableDeclaration",
                "scope": 25967,
                "src": "6253:10:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                  "typeString": "struct EnumerableSetUpgradeable.Set"
                },
                "typeName": {
                  "id": 25965,
                  "name": "Set",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 25702,
                  "src": "6253:3:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Set"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "AddressSet",
            "scope": 26183,
            "visibility": "public"
          },
          {
            "id": 25993,
            "nodeType": "FunctionDefinition",
            "src": "6440:150:20",
            "body": {
              "id": 25992,
              "nodeType": "Block",
              "src": "6516:74:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25978,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25970,
                          "src": "6538:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer"
                          }
                        },
                        "id": 25979,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25966,
                        "src": "6538:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 25986,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25972,
                                    "src": "6574:5:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 25985,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6566:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint160_$",
                                    "typeString": "type(uint160)"
                                  },
                                  "typeName": {
                                    "id": 25984,
                                    "name": "uint160",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6566:7:20",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 25987,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6566:14:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              ],
                              "id": 25983,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6558:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 25982,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "6558:7:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 25988,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6558:23:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 25981,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6550:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 25980,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "6550:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25989,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6550:32:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 25977,
                      "name": "_add",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25743,
                      "src": "6533:4:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 25990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6533:50:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25976,
                  "id": 25991,
                  "nodeType": "Return",
                  "src": "6526:57:20"
                }
              ]
            },
            "documentation": {
              "id": 25968,
              "nodeType": "StructuredDocumentation",
              "src": "6276:159:20",
              "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "add",
            "parameters": {
              "id": 25973,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25970,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 25993,
                  "src": "6453:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                  },
                  "typeName": {
                    "id": 25969,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25967,
                    "src": "6453:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25972,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25993,
                  "src": "6477:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25971,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6477:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6452:39:20"
            },
            "returnParameters": {
              "id": 25976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25975,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25993,
                  "src": "6510:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25974,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6510:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6509:6:20"
            },
            "scope": 26183,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26019,
            "nodeType": "FunctionDefinition",
            "src": "6758:156:20",
            "body": {
              "id": 26018,
              "nodeType": "Block",
              "src": "6837:77:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26004,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25996,
                          "src": "6862:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer"
                          }
                        },
                        "id": 26005,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25966,
                        "src": "6862:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 26012,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25998,
                                    "src": "6898:5:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 26011,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6890:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint160_$",
                                    "typeString": "type(uint160)"
                                  },
                                  "typeName": {
                                    "id": 26010,
                                    "name": "uint160",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6890:7:20",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 26013,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6890:14:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              ],
                              "id": 26009,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6882:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 26008,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "6882:7:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 26014,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6882:23:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 26007,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6874:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 26006,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "6874:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 26015,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6874:32:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 26003,
                      "name": "_remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25823,
                      "src": "6854:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 26016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6854:53:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 26002,
                  "id": 26017,
                  "nodeType": "Return",
                  "src": "6847:60:20"
                }
              ]
            },
            "documentation": {
              "id": 25994,
              "nodeType": "StructuredDocumentation",
              "src": "6596:157:20",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "remove",
            "parameters": {
              "id": 25999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25996,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26019,
                  "src": "6774:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                  },
                  "typeName": {
                    "id": 25995,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25967,
                    "src": "6774:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25998,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 26019,
                  "src": "6798:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25997,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6798:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6773:39:20"
            },
            "returnParameters": {
              "id": 26002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26001,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26019,
                  "src": "6831:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 26000,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6831:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6830:6:20"
            },
            "scope": 26183,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26045,
            "nodeType": "FunctionDefinition",
            "src": "6995:165:20",
            "body": {
              "id": 26044,
              "nodeType": "Block",
              "src": "7081:79:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26030,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26022,
                          "src": "7108:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer"
                          }
                        },
                        "id": 26031,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25966,
                        "src": "7108:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 26038,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 26024,
                                    "src": "7144:5:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 26037,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "7136:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint160_$",
                                    "typeString": "type(uint160)"
                                  },
                                  "typeName": {
                                    "id": 26036,
                                    "name": "uint160",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "7136:7:20",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 26039,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7136:14:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              ],
                              "id": 26035,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7128:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 26034,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "7128:7:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 26040,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7128:23:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 26033,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7120:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 26032,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7120:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 26041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7120:32:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 26029,
                      "name": "_contains",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25841,
                      "src": "7098:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 26042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7098:55:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 26028,
                  "id": 26043,
                  "nodeType": "Return",
                  "src": "7091:62:20"
                }
              ]
            },
            "documentation": {
              "id": 26020,
              "nodeType": "StructuredDocumentation",
              "src": "6920:70:20",
              "text": " @dev Returns true if the value is in the set. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "parameters": {
              "id": 26025,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26022,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26045,
                  "src": "7013:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                  },
                  "typeName": {
                    "id": 26021,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25967,
                    "src": "7013:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26024,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 26045,
                  "src": "7037:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26023,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7037:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7012:39:20"
            },
            "returnParameters": {
              "id": 26028,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26027,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26045,
                  "src": "7075:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 26026,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7075:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7074:6:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26059,
            "nodeType": "FunctionDefinition",
            "src": "7241:115:20",
            "body": {
              "id": 26058,
              "nodeType": "Block",
              "src": "7313:43:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26054,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26048,
                          "src": "7338:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer"
                          }
                        },
                        "id": 26055,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25966,
                        "src": "7338:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      ],
                      "id": 26053,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25854,
                      "src": "7330:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 26056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7330:19:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26052,
                  "id": 26057,
                  "nodeType": "Return",
                  "src": "7323:26:20"
                }
              ]
            },
            "documentation": {
              "id": 26046,
              "nodeType": "StructuredDocumentation",
              "src": "7166:70:20",
              "text": " @dev Returns the number of values in the set. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "parameters": {
              "id": 26049,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26048,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26059,
                  "src": "7257:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                  },
                  "typeName": {
                    "id": 26047,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25967,
                    "src": "7257:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7256:24:20"
            },
            "returnParameters": {
              "id": 26052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26051,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26059,
                  "src": "7304:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26050,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7304:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7303:9:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26085,
            "nodeType": "FunctionDefinition",
            "src": "7688:156:20",
            "body": {
              "id": 26084,
              "nodeType": "Block",
              "src": "7771:73:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 26076,
                                      "name": "set",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 26062,
                                      "src": "7816:3:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                                        "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer"
                                      }
                                    },
                                    "id": 26077,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_inner",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 25966,
                                    "src": "7816:10:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Set_$25702_storage",
                                      "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                                    }
                                  },
                                  {
                                    "id": 26078,
                                    "name": "index",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 26064,
                                    "src": "7828:5:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Set_$25702_storage",
                                      "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 26075,
                                  "name": "_at",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25879,
                                  "src": "7812:3:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                    "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)"
                                  }
                                },
                                "id": 26079,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7812:22:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 26074,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7804:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 26073,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "7804:7:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 26080,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7804:31:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 26072,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7796:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": {
                            "id": 26071,
                            "name": "uint160",
                            "nodeType": "ElementaryTypeName",
                            "src": "7796:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 26081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7796:40:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 26070,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "7788:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 26069,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "7788:7:20",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 26082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7788:49:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 26068,
                  "id": 26083,
                  "nodeType": "Return",
                  "src": "7781:56:20"
                }
              ]
            },
            "documentation": {
              "id": 26060,
              "nodeType": "StructuredDocumentation",
              "src": "7361:322:20",
              "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "parameters": {
              "id": 26065,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26062,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26085,
                  "src": "7700:22:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                  },
                  "typeName": {
                    "id": 26061,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25967,
                    "src": "7700:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$25967_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.AddressSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26064,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 26085,
                  "src": "7724:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26063,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7724:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7699:39:20"
            },
            "returnParameters": {
              "id": 26068,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26067,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26085,
                  "src": "7762:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26066,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7762:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7761:9:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26088,
            "nodeType": "StructDefinition",
            "src": "7867:42:20",
            "canonicalName": "EnumerableSetUpgradeable.UintSet",
            "members": [
              {
                "constant": false,
                "id": 26087,
                "mutability": "mutable",
                "name": "_inner",
                "nodeType": "VariableDeclaration",
                "scope": 26088,
                "src": "7892:10:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                  "typeString": "struct EnumerableSetUpgradeable.Set"
                },
                "typeName": {
                  "id": 26086,
                  "name": "Set",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 25702,
                  "src": "7892:3:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$25702_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.Set"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "UintSet",
            "scope": 26183,
            "visibility": "public"
          },
          {
            "id": 26108,
            "nodeType": "FunctionDefinition",
            "src": "8079:129:20",
            "body": {
              "id": 26107,
              "nodeType": "Block",
              "src": "8152:56:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26099,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26091,
                          "src": "8174:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer"
                          }
                        },
                        "id": 26100,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26087,
                        "src": "8174:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 26103,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26093,
                            "src": "8194:5:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 26102,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8186:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 26101,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8186:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 26104,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8186:14:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 26098,
                      "name": "_add",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25743,
                      "src": "8169:4:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 26105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8169:32:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 26097,
                  "id": 26106,
                  "nodeType": "Return",
                  "src": "8162:39:20"
                }
              ]
            },
            "documentation": {
              "id": 26089,
              "nodeType": "StructuredDocumentation",
              "src": "7915:159:20",
              "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "add",
            "parameters": {
              "id": 26094,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26091,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26108,
                  "src": "8092:19:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.UintSet"
                  },
                  "typeName": {
                    "id": 26090,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 26088,
                    "src": "8092:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.UintSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26093,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 26108,
                  "src": "8113:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26092,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8113:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8091:36:20"
            },
            "returnParameters": {
              "id": 26097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26096,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26108,
                  "src": "8146:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 26095,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8146:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8145:6:20"
            },
            "scope": 26183,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26128,
            "nodeType": "FunctionDefinition",
            "src": "8376:135:20",
            "body": {
              "id": 26127,
              "nodeType": "Block",
              "src": "8452:59:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26119,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26111,
                          "src": "8477:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer"
                          }
                        },
                        "id": 26120,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26087,
                        "src": "8477:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 26123,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26113,
                            "src": "8497:5:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 26122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8489:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 26121,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8489:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 26124,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8489:14:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 26118,
                      "name": "_remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25823,
                      "src": "8469:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 26125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8469:35:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 26117,
                  "id": 26126,
                  "nodeType": "Return",
                  "src": "8462:42:20"
                }
              ]
            },
            "documentation": {
              "id": 26109,
              "nodeType": "StructuredDocumentation",
              "src": "8214:157:20",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "remove",
            "parameters": {
              "id": 26114,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26111,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26128,
                  "src": "8392:19:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.UintSet"
                  },
                  "typeName": {
                    "id": 26110,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 26088,
                    "src": "8392:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.UintSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26113,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 26128,
                  "src": "8413:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26112,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8413:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8391:36:20"
            },
            "returnParameters": {
              "id": 26117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26116,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26128,
                  "src": "8446:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 26115,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8446:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8445:6:20"
            },
            "scope": 26183,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26148,
            "nodeType": "FunctionDefinition",
            "src": "8592:144:20",
            "body": {
              "id": 26147,
              "nodeType": "Block",
              "src": "8675:61:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26139,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26131,
                          "src": "8702:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer"
                          }
                        },
                        "id": 26140,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26087,
                        "src": "8702:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 26143,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26133,
                            "src": "8722:5:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 26142,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8714:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 26141,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8714:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 26144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8714:14:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 26138,
                      "name": "_contains",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25841,
                      "src": "8692:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 26145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8692:37:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 26137,
                  "id": 26146,
                  "nodeType": "Return",
                  "src": "8685:44:20"
                }
              ]
            },
            "documentation": {
              "id": 26129,
              "nodeType": "StructuredDocumentation",
              "src": "8517:70:20",
              "text": " @dev Returns true if the value is in the set. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "parameters": {
              "id": 26134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26131,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26148,
                  "src": "8610:19:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.UintSet"
                  },
                  "typeName": {
                    "id": 26130,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 26088,
                    "src": "8610:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.UintSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26133,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 26148,
                  "src": "8631:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26132,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8631:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8609:36:20"
            },
            "returnParameters": {
              "id": 26137,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26136,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26148,
                  "src": "8669:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 26135,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8669:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8668:6:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26162,
            "nodeType": "FunctionDefinition",
            "src": "8817:112:20",
            "body": {
              "id": 26161,
              "nodeType": "Block",
              "src": "8886:43:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26157,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26151,
                          "src": "8911:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                            "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer"
                          }
                        },
                        "id": 26158,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26087,
                        "src": "8911:10:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$25702_storage",
                          "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                        }
                      ],
                      "id": 26156,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25854,
                      "src": "8903:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 26159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8903:19:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26155,
                  "id": 26160,
                  "nodeType": "Return",
                  "src": "8896:26:20"
                }
              ]
            },
            "documentation": {
              "id": 26149,
              "nodeType": "StructuredDocumentation",
              "src": "8742:70:20",
              "text": " @dev Returns the number of values on the set. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "parameters": {
              "id": 26152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26151,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26162,
                  "src": "8833:19:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.UintSet"
                  },
                  "typeName": {
                    "id": 26150,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 26088,
                    "src": "8833:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.UintSet"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8832:21:20"
            },
            "returnParameters": {
              "id": 26155,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26154,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26162,
                  "src": "8877:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26153,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8877:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8876:9:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 26182,
            "nodeType": "FunctionDefinition",
            "src": "9261:135:20",
            "body": {
              "id": 26181,
              "nodeType": "Block",
              "src": "9341:55:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 26175,
                              "name": "set",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26165,
                              "src": "9370:3:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                                "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer"
                              }
                            },
                            "id": 26176,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_inner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26087,
                            "src": "9370:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Set_$25702_storage",
                              "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                            }
                          },
                          {
                            "id": 26177,
                            "name": "index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26167,
                            "src": "9382:5:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Set_$25702_storage",
                              "typeString": "struct EnumerableSetUpgradeable.Set storage ref"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 26174,
                          "name": "_at",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25879,
                          "src": "9366:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$25702_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                            "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)"
                          }
                        },
                        "id": 26178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9366:22:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 26173,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9358:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 26172,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9358:7:20",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 26179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9358:31:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26171,
                  "id": 26180,
                  "nodeType": "Return",
                  "src": "9351:38:20"
                }
              ]
            },
            "documentation": {
              "id": 26163,
              "nodeType": "StructuredDocumentation",
              "src": "8934:322:20",
              "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "parameters": {
              "id": 26168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26165,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 26182,
                  "src": "9273:19:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                    "typeString": "struct EnumerableSetUpgradeable.UintSet"
                  },
                  "typeName": {
                    "id": 26164,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 26088,
                    "src": "9273:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$26088_storage_ptr",
                      "typeString": "struct EnumerableSetUpgradeable.UintSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26167,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 26182,
                  "src": "9294:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26166,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9294:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9272:36:20"
            },
            "returnParameters": {
              "id": 26171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26170,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 26182,
                  "src": "9332:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26169,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9332:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9331:9:20"
            },
            "scope": 26183,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 25694,
          "nodeType": "StructuredDocumentation",
          "src": "66:686:20",
          "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableSet for EnumerableSet.AddressSet;\n     // Declare a set state variable\n     EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported."
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          26183
        ],
        "name": "EnumerableSetUpgradeable",
        "scope": 26184
      }
    ],
    "license": "MIT"
  },
  "id": 20
}