{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "productAddress",
          "type": "address"
        }
      ],
      "name": "getAuthorizationStatus",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "productId",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "isAuthorized",
          "type": "bool"
        },
        {
          "internalType": "address",
          "name": "policyFlow",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "registry",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "10": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/utils/Initializable.sol",
    "21": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Address.sol",
    "22": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol",
    "27": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/structs/EnumerableSet.sol",
    "30": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol",
    "32": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IProduct.sol",
    "37": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IAccess.sol",
    "39": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IComponentEvents.sol",
    "40": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ILicense.sol",
    "44": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
    "75": "contracts/modules/ComponentController.sol",
    "76": "contracts/modules/LicenseController.sol",
    "88": "contracts/shared/CoreController.sol"
  },
  "ast": {
    "absolutePath": "contracts/modules/LicenseController.sol",
    "exportedSymbols": {
      "Address": [
        26374
      ],
      "ComponentController": [
        6504
      ],
      "Context": [
        24074
      ],
      "CoreController": [
        14924
      ],
      "EnumerableSet": [
        19390
      ],
      "IAccess": [
        21938
      ],
      "IBundle": [
        20491
      ],
      "IComponent": [
        22099
      ],
      "IComponentEvents": [
        22419
      ],
      "ILicense": [
        22433
      ],
      "IOracle": [
        22133
      ],
      "IPolicy": [
        20837
      ],
      "IProduct": [
        21995
      ],
      "IRegistry": [
        21750
      ],
      "IRiskpool": [
        22366
      ],
      "Initializable": [
        18432
      ],
      "LicenseController": [
        6618
      ]
    },
    "id": 6619,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6506,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:76"
      },
      {
        "absolutePath": "contracts/modules/ComponentController.sol",
        "file": "./ComponentController.sol",
        "id": 6507,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6619,
        "sourceUnit": 6505,
        "src": "63:35:76",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/shared/CoreController.sol",
        "file": "../shared/CoreController.sol",
        "id": 6508,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6619,
        "sourceUnit": 14925,
        "src": "99:38:76",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol",
        "file": "@etherisc/gif-interface/contracts/components/IComponent.sol",
        "id": 6509,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6619,
        "sourceUnit": 22100,
        "src": "139:69:76",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IProduct.sol",
        "file": "@etherisc/gif-interface/contracts/components/IProduct.sol",
        "id": 6510,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6619,
        "sourceUnit": 21996,
        "src": "209:67:76",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ILicense.sol",
        "file": "@etherisc/gif-interface/contracts/modules/ILicense.sol",
        "id": 6511,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6619,
        "sourceUnit": 22434,
        "src": "277:64:76",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 6512,
              "name": "ILicense",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 22433,
              "src": "378:8:76"
            },
            "id": 6513,
            "nodeType": "InheritanceSpecifier",
            "src": "378:8:76"
          },
          {
            "baseName": {
              "id": 6514,
              "name": "CoreController",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 14924,
              "src": "393:14:76"
            },
            "id": 6515,
            "nodeType": "InheritanceSpecifier",
            "src": "393:14:76"
          }
        ],
        "contractDependencies": [
          14924,
          18432,
          22433,
          24074
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 6618,
        "linearizedBaseContracts": [
          6618,
          14924,
          18432,
          24074,
          22433
        ],
        "name": "LicenseController",
        "nameLocation": "353:17:76",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 6518,
            "mutability": "mutable",
            "name": "_component",
            "nameLocation": "443:10:76",
            "nodeType": "VariableDeclaration",
            "scope": 6618,
            "src": "415:38:76",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ComponentController_$6504",
              "typeString": "contract ComponentController"
            },
            "typeName": {
              "id": 6517,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 6516,
                "name": "ComponentController",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 6504,
                "src": "415:19:76"
              },
              "referencedDeclaration": 6504,
              "src": "415:19:76",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ComponentController_$6504",
                "typeString": "contract ComponentController"
              }
            },
            "visibility": "private"
          },
          {
            "baseFunctions": [
              14898
            ],
            "body": {
              "id": 6532,
              "nodeType": "Block",
              "src": "523:83:76",
              "statements": [
                {
                  "expression": {
                    "id": 6530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6524,
                      "name": "_component",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6518,
                      "src": "533:10:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ComponentController_$6504",
                        "typeString": "contract ComponentController"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "436f6d706f6e656e74",
                              "id": 6527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "586:11:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24",
                                "typeString": "literal_string \"Component\""
                              },
                              "value": "Component"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24",
                                "typeString": "literal_string \"Component\""
                              }
                            ],
                            "id": 6526,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14923,
                            "src": "566:19:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 6528,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "566:32:76",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 6525,
                        "name": "ComponentController",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6504,
                        "src": "546:19:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ComponentController_$6504_$",
                          "typeString": "type(contract ComponentController)"
                        }
                      },
                      "id": 6529,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "546:53:76",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ComponentController_$6504",
                        "typeString": "contract ComponentController"
                      }
                    },
                    "src": "533:66:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ComponentController_$6504",
                      "typeString": "contract ComponentController"
                    }
                  },
                  "id": 6531,
                  "nodeType": "ExpressionStatement",
                  "src": "533:66:76"
                }
              ]
            },
            "id": 6533,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6522,
                "modifierName": {
                  "id": 6521,
                  "name": "onlyInitializing",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 18395,
                  "src": "506:16:76"
                },
                "nodeType": "ModifierInvocation",
                "src": "506:16:76"
              }
            ],
            "name": "_afterInitialize",
            "nameLocation": "469:16:76",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6520,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "497:8:76"
            },
            "parameters": {
              "id": 6519,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "485:2:76"
            },
            "returnParameters": {
              "id": 6523,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "523:0:76"
            },
            "scope": 6618,
            "src": "460:146:76",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              22432
            ],
            "body": {
              "id": 6565,
              "nodeType": "Block",
              "src": "852:176:76",
              "statements": [
                {
                  "expression": {
                    "id": 6550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6545,
                      "name": "productId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6539,
                      "src": "862:9:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6548,
                          "name": "productAddress",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6535,
                          "src": "900:14:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "id": 6546,
                          "name": "_component",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6518,
                          "src": "874:10:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ComponentController_$6504",
                            "typeString": "contract ComponentController"
                          }
                        },
                        "id": 6547,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getComponentId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6078,
                        "src": "874:25:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                          "typeString": "function (address) view external returns (uint256)"
                        }
                      },
                      "id": 6549,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "874:41:76",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "862:53:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6551,
                  "nodeType": "ExpressionStatement",
                  "src": "862:53:76"
                },
                {
                  "expression": {
                    "id": 6556,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6552,
                      "name": "isAuthorized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6541,
                      "src": "925:12:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6554,
                          "name": "productId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6539,
                          "src": "953:9:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 6553,
                        "name": "_isValidCall",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6583,
                        "src": "940:12:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (uint256) view returns (bool)"
                        }
                      },
                      "id": 6555,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "940:23:76",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "925:38:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6557,
                  "nodeType": "ExpressionStatement",
                  "src": "925:38:76"
                },
                {
                  "expression": {
                    "id": 6563,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6558,
                      "name": "policyFlow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6543,
                      "src": "973:10:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6561,
                          "name": "productId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6539,
                          "src": "1011:9:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 6559,
                          "name": "_component",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6518,
                          "src": "986:10:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ComponentController_$6504",
                            "typeString": "contract ComponentController"
                          }
                        },
                        "id": 6560,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getPolicyFlow",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6331,
                        "src": "986:24:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                          "typeString": "function (uint256) view external returns (address)"
                        }
                      },
                      "id": 6562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "986:35:76",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "973:48:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 6564,
                  "nodeType": "ExpressionStatement",
                  "src": "973:48:76"
                }
              ]
            },
            "functionSelector": "d3e9c314",
            "id": 6566,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAuthorizationStatus",
            "nameLocation": "689:22:76",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6537,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "751:8:76"
            },
            "parameters": {
              "id": 6536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6535,
                  "mutability": "mutable",
                  "name": "productAddress",
                  "nameLocation": "720:14:76",
                  "nodeType": "VariableDeclaration",
                  "scope": 6566,
                  "src": "712:22:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6534,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "712:7:76",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "711:24:76"
            },
            "returnParameters": {
              "id": 6544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6539,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "798:9:76",
                  "nodeType": "VariableDeclaration",
                  "scope": 6566,
                  "src": "790:17:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6538,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "790:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6541,
                  "mutability": "mutable",
                  "name": "isAuthorized",
                  "nameLocation": "814:12:76",
                  "nodeType": "VariableDeclaration",
                  "scope": 6566,
                  "src": "809:17:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6540,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "809:4:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6543,
                  "mutability": "mutable",
                  "name": "policyFlow",
                  "nameLocation": "836:10:76",
                  "nodeType": "VariableDeclaration",
                  "scope": 6566,
                  "src": "828:18:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6542,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "828:7:76",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "789:58:76"
            },
            "scope": 6618,
            "src": "680:348:76",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6582,
              "nodeType": "Block",
              "src": "1104:99:76",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_enum$_ComponentState_$22010",
                      "typeString": "enum IComponent.ComponentState"
                    },
                    "id": 6580,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 6575,
                          "name": "productId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6568,
                          "src": "1150:9:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 6573,
                          "name": "_component",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6518,
                          "src": "1121:10:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ComponentController_$6504",
                            "typeString": "contract ComponentController"
                          }
                        },
                        "id": 6574,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getComponentState",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6138,
                        "src": "1121:28:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$22010_$",
                          "typeString": "function (uint256) view external returns (enum IComponent.ComponentState)"
                        }
                      },
                      "id": 6576,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1121:39:76",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ComponentState_$22010",
                        "typeString": "enum IComponent.ComponentState"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "expression": {
                        "expression": {
                          "id": 6577,
                          "name": "IComponent",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22099,
                          "src": "1164:10:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IComponent_$22099_$",
                            "typeString": "type(contract IComponent)"
                          }
                        },
                        "id": 6578,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ComponentState",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22010,
                        "src": "1164:25:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ComponentState_$22010_$",
                          "typeString": "type(enum IComponent.ComponentState)"
                        }
                      },
                      "id": 6579,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Active",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22006,
                      "src": "1164:32:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ComponentState_$22010",
                        "typeString": "enum IComponent.ComponentState"
                      }
                    },
                    "src": "1121:75:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6572,
                  "id": 6581,
                  "nodeType": "Return",
                  "src": "1114:82:76"
                }
              ]
            },
            "id": 6583,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_isValidCall",
            "nameLocation": "1043:12:76",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6569,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6568,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "1064:9:76",
                  "nodeType": "VariableDeclaration",
                  "scope": 6583,
                  "src": "1056:17:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6567,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1056:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1055:19:76"
            },
            "returnParameters": {
              "id": 6572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6571,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6583,
                  "src": "1098:4:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6570,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1098:4:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1097:6:76"
            },
            "scope": 6618,
            "src": "1034:169:76",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6616,
              "nodeType": "Block",
              "src": "1283:185:76",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 6594,
                            "name": "id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6585,
                            "src": "1322:2:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 6592,
                            "name": "_component",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6518,
                            "src": "1301:10:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ComponentController_$6504",
                              "typeString": "contract ComponentController"
                            }
                          },
                          "id": 6593,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isProduct",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6282,
                          "src": "1301:20:76",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view external returns (bool)"
                          }
                        },
                        "id": 6595,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1301:24:76",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a4c49432d3030313a434f4d504f4e454e545f4e4f545f50524f44554354",
                        "id": 6596,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1327:37:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d2cc379ca4dad5e4640f7ad3a46170e466c44d14c7ce6c2707834b40eaceccca",
                          "typeString": "literal_string \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\""
                        },
                        "value": "ERROR:LIC-001:COMPONENT_NOT_PRODUCT"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d2cc379ca4dad5e4640f7ad3a46170e466c44d14c7ce6c2707834b40eaceccca",
                          "typeString": "literal_string \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\""
                        }
                      ],
                      "id": 6591,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1293:7:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6597,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1293:72:76",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6598,
                  "nodeType": "ExpressionStatement",
                  "src": "1293:72:76"
                },
                {
                  "assignments": [
                    6601
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6601,
                      "mutability": "mutable",
                      "name": "cmp",
                      "nameLocation": "1386:3:76",
                      "nodeType": "VariableDeclaration",
                      "scope": 6616,
                      "src": "1375:14:76",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IComponent_$22099",
                        "typeString": "contract IComponent"
                      },
                      "typeName": {
                        "id": 6600,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6599,
                          "name": "IComponent",
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 22099,
                          "src": "1375:10:76"
                        },
                        "referencedDeclaration": 22099,
                        "src": "1375:10:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IComponent_$22099",
                          "typeString": "contract IComponent"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6606,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6604,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6585,
                        "src": "1416:2:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6602,
                        "name": "_component",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6518,
                        "src": "1392:10:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ComponentController_$6504",
                          "typeString": "contract ComponentController"
                        }
                      },
                      "id": 6603,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getComponent",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6047,
                      "src": "1392:23:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$22099_$",
                        "typeString": "function (uint256) view external returns (contract IComponent)"
                      }
                    },
                    "id": 6605,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1392:27:76",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IComponent_$22099",
                      "typeString": "contract IComponent"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1375:44:76"
                },
                {
                  "expression": {
                    "id": 6614,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6607,
                      "name": "product",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6589,
                      "src": "1429:7:76",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IProduct_$21995",
                        "typeString": "contract IProduct"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "id": 6611,
                              "name": "cmp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6601,
                              "src": "1456:3:76",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IComponent_$22099",
                                "typeString": "contract IComponent"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_IComponent_$22099",
                                "typeString": "contract IComponent"
                              }
                            ],
                            "id": 6610,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1448:7:76",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 6609,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1448:7:76",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 6612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1448:12:76",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 6608,
                        "name": "IProduct",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21995,
                        "src": "1439:8:76",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IProduct_$21995_$",
                          "typeString": "type(contract IProduct)"
                        }
                      },
                      "id": 6613,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1439:22:76",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IProduct_$21995",
                        "typeString": "contract IProduct"
                      }
                    },
                    "src": "1429:32:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IProduct_$21995",
                      "typeString": "contract IProduct"
                    }
                  },
                  "id": 6615,
                  "nodeType": "ExpressionStatement",
                  "src": "1429:32:76"
                }
              ]
            },
            "id": 6617,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getProduct",
            "nameLocation": "1218:11:76",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6586,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6585,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "1238:2:76",
                  "nodeType": "VariableDeclaration",
                  "scope": 6617,
                  "src": "1230:10:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6584,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1230:7:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1229:12:76"
            },
            "returnParameters": {
              "id": 6590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6589,
                  "mutability": "mutable",
                  "name": "product",
                  "nameLocation": "1274:7:76",
                  "nodeType": "VariableDeclaration",
                  "scope": 6617,
                  "src": "1265:16:76",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IProduct_$21995",
                    "typeString": "contract IProduct"
                  },
                  "typeName": {
                    "id": 6588,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6587,
                      "name": "IProduct",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 21995,
                      "src": "1265:8:76"
                    },
                    "referencedDeclaration": 21995,
                    "src": "1265:8:76",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IProduct_$21995",
                      "typeString": "contract IProduct"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1264:18:76"
            },
            "scope": 6618,
            "src": "1209:259:76",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 6619,
        "src": "344:1126:76"
      }
    ],
    "src": "39:1432:76"
  },
  "bytecode": "608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610630806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220a41b2837820550469c00347b63509bbc5846c4d8f00b1aa38562b71d4af13d1964736f6c63430008020033",
  "bytecodeSha1": "4ed6b55cf8c39e3bcbdb748b3197897f6fdc93b2",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "LicenseController",
  "coverageMap": {
    "branches": {
      "10": {
        "CoreController.initialize": {
          "13": [
            3209,
            3242,
            false
          ]
        },
        "LicenseController._afterInitialize": {
          "14": [
            4888,
            4901,
            true
          ]
        }
      },
      "21": {},
      "22": {},
      "27": {},
      "30": {},
      "32": {},
      "37": {},
      "39": {},
      "40": {},
      "44": {},
      "75": {},
      "76": {},
      "88": {
        "CoreController._getContractAddress": {
          "12": [
            1724,
            1753,
            true
          ]
        },
        "CoreController.initialize": {
          "11": [
            1255,
            1277,
            false
          ]
        }
      }
    },
    "statements": {
      "10": {},
      "21": {
        "Address.isContract": {
          "6": [
            1458,
            1488
          ]
        }
      },
      "22": {},
      "27": {},
      "30": {},
      "32": {},
      "37": {},
      "39": {},
      "40": {},
      "44": {},
      "75": {},
      "76": {
        "LicenseController._afterInitialize": {
          "9": [
            533,
            599
          ]
        },
        "LicenseController._isValidCall": {
          "10": [
            1114,
            1196
          ]
        },
        "LicenseController.getAuthorizationStatus": {
          "3": [
            862,
            915
          ],
          "4": [
            925,
            963
          ],
          "5": [
            973,
            1021
          ]
        }
      },
      "88": {
        "CoreController._getContractAddress": {
          "7": [
            1640,
            1693
          ],
          "8": [
            1703,
            1816
          ]
        },
        "CoreController.initialize": {
          "0": [
            1210,
            1241
          ],
          "1": [
            1281,
            1329
          ],
          "2": [
            1350,
            1368
          ]
        }
      }
    }
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Address",
    "ComponentController",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Context",
    "CoreController",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/EnumerableSet",
    "etherisc/gif-interface@3b0002a/IAccess",
    "etherisc/gif-interface@3b0002a/IComponent",
    "etherisc/gif-interface@3b0002a/IComponentEvents",
    "etherisc/gif-interface@3b0002a/ILicense",
    "etherisc/gif-interface@3b0002a/IProduct",
    "etherisc/gif-interface@3b0002a/IRegistry",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Initializable"
  ],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220a41b2837820550469c00347b63509bbc5846c4d8f00b1aa38562b71d4af13d1964736f6c63430008020033",
  "deployedSourceMap": "344:1126:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:232:88;;;;;;:::i;:::-;;:::i;:::-;;680:348:76;;;;;;:::i;:::-;;:::i;:::-;;;;3246:25:103;;;3314:14;;3307:22;3302:2;3287:18;;3280:50;-1:-1:-1;;;;;3366:32:103;3346:18;;;3339:60;3234:2;3219:18;680:348:76;;;;;;;1143:232:88;3100:19:10;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:10;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:10;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:10;;2243:2:103;3146:190:10;;;2225:21:103;2282:2;2262:18;;;2255:30;2321:34;2301:18;;;2294:62;-1:-1:-1;;;2372:18:103;;;2365:44;2426:19;;3146:190:10;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:10;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:10;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:10::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:10;;;3531:14;;-1:-1:-1;1588:36:103;;3531:14:10;;1576:2:103;1561:18;3531:14:10;;;;;;;3457:99;1143:232:88;;:::o;680:348:76:-;874:10;;:41;;-1:-1:-1;;;874:41:76;;-1:-1:-1;;;;;1210:32:103;;;874:41:76;;;1192:51:103;790:17:76;;;;;;874:10;;;;:25;;1165:18:103;;874:41:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;862:53;;940:23;953:9;940:12;:23::i;:::-;986:10;;:35;;-1:-1:-1;;;986:35:76;;;;;1400:25:103;;;925:38:76;;-1:-1:-1;;;;;;986:10:76;;:24;;1373:18:103;;986:35:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;680:348;;;;-1:-1:-1;;680:348:76:o;1175:320:21:-;-1:-1:-1;;;;;1465:19:21;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;1400:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;1373:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;1837:2:103;1703:113:88;;;1819:21:103;1876:2;1856:18;;;1849:30;1915:34;1895:18;;;1888:62;-1:-1:-1;;;1966:18:103;;;1959:35;2011:19;;1703:113:88;1809:227:103;460:146:76;4888:13:10;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:10;;2658:2:103;4880:69:10;;;2640:21:103;2697:2;2677:18;;;2670:30;2736:34;2716:18;;;2709:62;-1:-1:-1;;;2787:18:103;;;2780:41;2838:19;;4880:69:10;2630:233:103;4880:69:10;566:32:76::1;-1:-1:-1::0;;;566:19:76::1;:32::i;:::-;533:10;:66:::0;;-1:-1:-1;;;;;;533:66:76::1;-1:-1:-1::0;;;;;533:66:76;;;::::1;::::0;;;::::1;::::0;;460:146::o;1034:169::-;1098:4;1164:32;1121:10;;:39;;-1:-1:-1;;;1121:39:76;;;;;1400:25:103;;;-1:-1:-1;;;;;1121:10:76;;;;:28;;1373:18:103;;1121:39:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:75;;;;;;-1:-1:-1;;;1121:75:76;;;;;;;;;;;1034:169;-1:-1:-1;;1034:169:76:o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:300::-;;685:2;673:9;664:7;660:23;656:32;653:2;;;706:6;698;691:22;653:2;743:9;737:16;782:1;775:5;772:12;762:2;;803:6;795;788:22;847:194;;970:2;958:9;949:7;945:23;941:32;938:2;;;991:6;983;976:22;938:2;-1:-1:-1;1019:16:103;;928:113;-1:-1:-1;928:113:103:o;3410:131::-;-1:-1:-1;;;;;3485:31:103;;3475:42;;3465:2;;3531:1;3528;3521:12;3465:2;3455:86;:::o",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    344,
    1470
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xD3E9C314 EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x8B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x63 PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x215 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAB JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCC JUMPI POP PUSH2 0xBA ADDRESS PUSH2 0x329 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x134 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1C3 JUMPI PUSH2 0x1A2 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1CB PUSH2 0x424 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x275 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST SWAP3 POP PUSH2 0x2A4 DUP4 PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE61AE297 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE61AE297 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x321 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP3 SWAP5 SWAP2 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x48F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH2 0x4A4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x565 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x588 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DB JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG4 SHL 0x28 CALLDATACOPY DUP3 SDIV POP CHAINID SWAP13 STOP CALLVALUE PUSH28 0x63509BBC5846C4D8F00B1AA38562B71D4AF13D1964736F6C63430008 MUL STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        344,
        1470
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "5": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "CALLVALUE",
      "path": "76"
    },
    "6": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "DUP1",
      "path": "76"
    },
    "7": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "8": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "12": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "DUP1",
      "path": "76"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "REVERT",
      "path": "76"
    },
    "16": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "17": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "POP",
      "path": "76"
    },
    "18": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "CALLDATASIZE",
      "path": "76"
    },
    "21": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "LT",
      "path": "76"
    },
    "22": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x36"
    },
    "25": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "26": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "CALLDATALOAD",
      "path": "76"
    },
    "29": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "SHR",
      "path": "76"
    },
    "32": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "DUP1",
      "path": "76"
    },
    "33": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH4",
      "path": "76",
      "value": "0xC4D66DE8"
    },
    "38": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "EQ",
      "path": "76"
    },
    "39": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x3B"
    },
    "42": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "43": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "DUP1",
      "path": "76"
    },
    "44": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH4",
      "path": "76",
      "value": "0xD3E9C314"
    },
    "49": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "EQ",
      "path": "76"
    },
    "50": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x50"
    },
    "53": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "54": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "55": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "57": {
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "DUP1",
      "path": "76"
    },
    "58": {
      "first_revert": true,
      "fn": null,
      "offset": [
        344,
        1470
      ],
      "op": "REVERT",
      "path": "76"
    },
    "59": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "60": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x4E"
    },
    "63": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x49"
    },
    "66": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "CALLDATASIZE",
      "path": "88"
    },
    "67": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x4"
    },
    "69": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x56C"
    },
    "72": {
      "fn": "CoreController.initialize",
      "jump": "i",
      "offset": [
        1143,
        1375
      ],
      "op": "JUMP",
      "path": "88"
    },
    "73": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "74": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x8B"
    },
    "77": {
      "fn": "CoreController.initialize",
      "jump": "i",
      "offset": [
        1143,
        1375
      ],
      "op": "JUMP",
      "path": "88"
    },
    "78": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "79": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "STOP",
      "path": "88"
    },
    "80": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "81": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x63"
    },
    "84": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x5E"
    },
    "87": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "CALLDATASIZE",
      "path": "76"
    },
    "88": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x4"
    },
    "90": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x56C"
    },
    "93": {
      "fn": "LicenseController.getAuthorizationStatus",
      "jump": "i",
      "offset": [
        680,
        1028
      ],
      "op": "JUMP",
      "path": "76"
    },
    "94": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "95": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x215"
    },
    "98": {
      "fn": "LicenseController.getAuthorizationStatus",
      "jump": "i",
      "offset": [
        680,
        1028
      ],
      "op": "JUMP",
      "path": "76"
    },
    "99": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "100": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "102": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "DUP1",
      "path": "76"
    },
    "103": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "104": {
      "op": "SWAP4"
    },
    "105": {
      "op": "DUP5"
    },
    "106": {
      "op": "MSTORE"
    },
    "107": {
      "op": "SWAP2"
    },
    "108": {
      "op": "ISZERO"
    },
    "109": {
      "op": "ISZERO"
    },
    "110": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "112": {
      "op": "DUP5"
    },
    "113": {
      "op": "ADD"
    },
    "114": {
      "op": "MSTORE"
    },
    "115": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "117": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "119": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "121": {
      "op": "SHL"
    },
    "122": {
      "op": "SUB"
    },
    "123": {
      "op": "AND"
    },
    "124": {
      "op": "SWAP1"
    },
    "125": {
      "op": "DUP3"
    },
    "126": {
      "op": "ADD"
    },
    "127": {
      "op": "MSTORE"
    },
    "128": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "130": {
      "op": "ADD"
    },
    "131": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "133": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "134": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "DUP1",
      "path": "76"
    },
    "135": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "136": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "SUB",
      "path": "76"
    },
    "137": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "138": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "RETURN",
      "path": "76"
    },
    "139": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "140": {
      "offset": [
        3100,
        3119
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "142": {
      "offset": [
        3123,
        3136
      ],
      "op": "SLOAD",
      "path": "10"
    },
    "143": {
      "fn": "CoreController.initialize",
      "offset": [
        3123,
        3136
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x100"
    },
    "146": {
      "fn": "CoreController.initialize",
      "offset": [
        3123,
        3136
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "147": {
      "fn": "CoreController.initialize",
      "offset": [
        3123,
        3136
      ],
      "op": "DIV",
      "path": "10"
    },
    "148": {
      "fn": "CoreController.initialize",
      "offset": [
        3123,
        3136
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0xFF"
    },
    "150": {
      "fn": "CoreController.initialize",
      "offset": [
        3123,
        3136
      ],
      "op": "AND",
      "path": "10"
    },
    "151": {
      "offset": [
        3122,
        3136
      ],
      "op": "ISZERO",
      "path": "10"
    },
    "152": {
      "fn": "CoreController.initialize",
      "offset": [
        3122,
        3136
      ],
      "op": "DUP1",
      "path": "10"
    },
    "153": {
      "offset": [
        3168,
        3202
      ],
      "op": "DUP1",
      "path": "10"
    },
    "154": {
      "fn": "CoreController.initialize",
      "offset": [
        3168,
        3202
      ],
      "op": "ISZERO",
      "path": "10"
    },
    "155": {
      "fn": "CoreController.initialize",
      "offset": [
        3168,
        3202
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0xAB"
    },
    "158": {
      "fn": "CoreController.initialize",
      "offset": [
        3168,
        3202
      ],
      "op": "JUMPI",
      "path": "10"
    },
    "159": {
      "op": "POP"
    },
    "160": {
      "offset": [
        3186,
        3198
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "162": {
      "fn": "CoreController.initialize",
      "offset": [
        3186,
        3198
      ],
      "op": "SLOAD",
      "path": "10"
    },
    "163": {
      "offset": [
        3201,
        3202
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x1"
    },
    "165": {
      "offset": [
        3186,
        3198
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0xFF"
    },
    "167": {
      "fn": "CoreController.initialize",
      "offset": [
        3186,
        3198
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "168": {
      "fn": "CoreController.initialize",
      "offset": [
        3186,
        3198
      ],
      "op": "SWAP2",
      "path": "10"
    },
    "169": {
      "fn": "CoreController.initialize",
      "offset": [
        3186,
        3198
      ],
      "op": "AND",
      "path": "10"
    },
    "170": {
      "offset": [
        3186,
        3202
      ],
      "op": "LT",
      "path": "10"
    },
    "171": {
      "offset": [
        3168,
        3202
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "172": {
      "offset": [
        3167,
        3264
      ],
      "op": "DUP1",
      "path": "10"
    },
    "173": {
      "fn": "CoreController.initialize",
      "offset": [
        3167,
        3264
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0xCC"
    },
    "176": {
      "offset": [
        3167,
        3264
      ],
      "op": "JUMPI",
      "path": "10"
    },
    "177": {
      "fn": "CoreController.initialize",
      "offset": [
        3167,
        3264
      ],
      "op": "POP",
      "path": "10"
    },
    "178": {
      "offset": [
        3209,
        3242
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0xBA"
    },
    "181": {
      "offset": [
        3236,
        3240
      ],
      "op": "ADDRESS",
      "path": "10"
    },
    "182": {
      "offset": [
        3209,
        3227
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x329"
    },
    "185": {
      "jump": "i",
      "offset": [
        3209,
        3242
      ],
      "op": "JUMP",
      "path": "10"
    },
    "186": {
      "branch": 13,
      "fn": "CoreController.initialize",
      "offset": [
        3209,
        3242
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "187": {
      "offset": [
        3208,
        3242
      ],
      "op": "ISZERO",
      "path": "10"
    },
    "188": {
      "offset": [
        3208,
        3263
      ],
      "op": "DUP1",
      "path": "10"
    },
    "189": {
      "fn": "CoreController.initialize",
      "offset": [
        3208,
        3263
      ],
      "op": "ISZERO",
      "path": "10"
    },
    "190": {
      "fn": "CoreController.initialize",
      "offset": [
        3208,
        3263
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0xCC"
    },
    "193": {
      "branch": 13,
      "offset": [
        3208,
        3263
      ],
      "op": "JUMPI",
      "path": "10"
    },
    "194": {
      "op": "POP"
    },
    "195": {
      "offset": [
        3246,
        3258
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "197": {
      "fn": "CoreController.initialize",
      "offset": [
        3246,
        3258
      ],
      "op": "SLOAD",
      "path": "10"
    },
    "198": {
      "fn": "CoreController.initialize",
      "offset": [
        3246,
        3258
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0xFF"
    },
    "200": {
      "fn": "CoreController.initialize",
      "offset": [
        3246,
        3258
      ],
      "op": "AND",
      "path": "10"
    },
    "201": {
      "fn": "CoreController.initialize",
      "offset": [
        3246,
        3258
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x1"
    },
    "203": {
      "offset": [
        3246,
        3263
      ],
      "op": "EQ",
      "path": "10"
    },
    "204": {
      "offset": [
        3208,
        3263
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "205": {
      "offset": [
        3146,
        3336
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x134"
    },
    "208": {
      "offset": [
        3146,
        3336
      ],
      "op": "JUMPI",
      "path": "10"
    },
    "209": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x40"
    },
    "211": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "MLOAD",
      "path": "10"
    },
    "212": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "216": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "218": {
      "op": "SHL"
    },
    "219": {
      "offset": [
        3146,
        3336
      ],
      "op": "DUP2",
      "path": "10"
    },
    "220": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "MSTORE",
      "path": "10"
    },
    "221": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "223": {
      "offset": [
        3146,
        3336
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x4"
    },
    "225": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "DUP3",
      "path": "10"
    },
    "226": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "ADD",
      "path": "10"
    },
    "227": {
      "op": "MSTORE"
    },
    "228": {
      "op": "PUSH1",
      "value": "0x2E"
    },
    "230": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "232": {
      "op": "DUP3"
    },
    "233": {
      "op": "ADD"
    },
    "234": {
      "op": "MSTORE"
    },
    "235": {
      "op": "PUSH32",
      "value": "0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561"
    },
    "268": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "270": {
      "op": "DUP3"
    },
    "271": {
      "op": "ADD"
    },
    "272": {
      "op": "MSTORE"
    },
    "273": {
      "op": "PUSH14",
      "value": "0x191E481A5B9A5D1A585B1A5E9959"
    },
    "288": {
      "op": "PUSH1",
      "value": "0x92"
    },
    "290": {
      "op": "SHL"
    },
    "291": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "293": {
      "op": "DUP3"
    },
    "294": {
      "op": "ADD"
    },
    "295": {
      "op": "MSTORE"
    },
    "296": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "298": {
      "op": "ADD"
    },
    "299": {
      "offset": [
        3146,
        3336
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "300": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x40"
    },
    "302": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "MLOAD",
      "path": "10"
    },
    "303": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "DUP1",
      "path": "10"
    },
    "304": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "SWAP2",
      "path": "10"
    },
    "305": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "SUB",
      "path": "10"
    },
    "306": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "307": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "10"
    },
    "308": {
      "fn": "CoreController.initialize",
      "offset": [
        3146,
        3336
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "309": {
      "offset": [
        3346,
        3358
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "311": {
      "offset": [
        3346,
        3362
      ],
      "op": "DUP1",
      "path": "10"
    },
    "312": {
      "fn": "CoreController.initialize",
      "offset": [
        3346,
        3362
      ],
      "op": "SLOAD",
      "path": "10"
    },
    "313": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "315": {
      "op": "NOT"
    },
    "316": {
      "offset": [
        3346,
        3362
      ],
      "op": "AND",
      "path": "10"
    },
    "317": {
      "offset": [
        3361,
        3362
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x1"
    },
    "319": {
      "offset": [
        3346,
        3362
      ],
      "op": "OR",
      "path": "10"
    },
    "320": {
      "fn": "CoreController.initialize",
      "offset": [
        3346,
        3362
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "321": {
      "fn": "CoreController.initialize",
      "offset": [
        3346,
        3362
      ],
      "op": "SSTORE",
      "path": "10"
    },
    "322": {
      "offset": [
        3372,
        3437
      ],
      "op": "DUP1",
      "path": "10"
    },
    "323": {
      "fn": "CoreController.initialize",
      "offset": [
        3372,
        3437
      ],
      "op": "ISZERO",
      "path": "10"
    },
    "324": {
      "fn": "CoreController.initialize",
      "offset": [
        3372,
        3437
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x157"
    },
    "327": {
      "fn": "CoreController.initialize",
      "offset": [
        3372,
        3437
      ],
      "op": "JUMPI",
      "path": "10"
    },
    "328": {
      "offset": [
        3406,
        3419
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "330": {
      "offset": [
        3406,
        3426
      ],
      "op": "DUP1",
      "path": "10"
    },
    "331": {
      "fn": "CoreController.initialize",
      "offset": [
        3406,
        3426
      ],
      "op": "SLOAD",
      "path": "10"
    },
    "332": {
      "op": "PUSH2",
      "value": "0xFF00"
    },
    "335": {
      "op": "NOT"
    },
    "336": {
      "offset": [
        3406,
        3426
      ],
      "op": "AND",
      "path": "10"
    },
    "337": {
      "fn": "CoreController.initialize",
      "offset": [
        3406,
        3426
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x100"
    },
    "340": {
      "fn": "CoreController.initialize",
      "offset": [
        3406,
        3426
      ],
      "op": "OR",
      "path": "10"
    },
    "341": {
      "fn": "CoreController.initialize",
      "offset": [
        3406,
        3426
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "342": {
      "fn": "CoreController.initialize",
      "offset": [
        3406,
        3426
      ],
      "op": "SSTORE",
      "path": "10"
    },
    "343": {
      "offset": [
        3372,
        3437
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "344": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1219
      ],
      "op": "PUSH1",
      "path": "88",
      "statement": 0,
      "value": "0x0"
    },
    "346": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "DUP1",
      "path": "88"
    },
    "347": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "SLOAD",
      "path": "88"
    },
    "348": {
      "op": "PUSH3",
      "value": "0x10000"
    },
    "352": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "354": {
      "op": "PUSH1",
      "value": "0xB0"
    },
    "356": {
      "op": "SHL"
    },
    "357": {
      "op": "SUB"
    },
    "358": {
      "op": "NOT"
    },
    "359": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "AND",
      "path": "88"
    },
    "360": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "PUSH3",
      "path": "88",
      "value": "0x10000"
    },
    "364": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "366": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "368": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "370": {
      "op": "SHL"
    },
    "371": {
      "op": "SUB"
    },
    "372": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "DUP6",
      "path": "88"
    },
    "373": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "AND",
      "path": "88"
    },
    "374": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "MUL",
      "path": "88"
    },
    "375": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "OR",
      "path": "88"
    },
    "376": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "377": {
      "fn": "CoreController.initialize",
      "offset": [
        1210,
        1241
      ],
      "op": "SSTORE",
      "path": "88"
    },
    "378": {
      "fn": "CoreController.initialize",
      "offset": [
        1255,
        1265
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x181"
    },
    "381": {
      "fn": "CoreController._getName",
      "offset": [
        1431,
        1438
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x0"
    },
    "383": {
      "fn": "CoreController._getName",
      "offset": [
        1381,
        1454
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "384": {
      "fn": "CoreController._getName",
      "offset": [
        1381,
        1454
      ],
      "op": "JUMP",
      "path": "88"
    },
    "385": {
      "fn": "CoreController.initialize",
      "offset": [
        1255,
        1265
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "386": {
      "op": "PUSH6",
      "value": "0x416363657373"
    },
    "393": {
      "op": "PUSH1",
      "value": "0xD0"
    },
    "395": {
      "op": "SHL"
    },
    "396": {
      "branch": 11,
      "fn": "CoreController.initialize",
      "offset": [
        1255,
        1277
      ],
      "op": "EQ",
      "path": "88"
    },
    "397": {
      "fn": "CoreController.initialize",
      "offset": [
        1251,
        1332
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x1C3"
    },
    "400": {
      "branch": 11,
      "fn": "CoreController.initialize",
      "offset": [
        1251,
        1332
      ],
      "op": "JUMPI",
      "path": "88"
    },
    "401": {
      "fn": "CoreController.initialize",
      "offset": [
        1299,
        1328
      ],
      "op": "PUSH2",
      "path": "88",
      "statement": 1,
      "value": "0x1A2"
    },
    "404": {
      "op": "PUSH6",
      "value": "0x416363657373"
    },
    "411": {
      "op": "PUSH1",
      "value": "0xD0"
    },
    "413": {
      "op": "SHL"
    },
    "414": {
      "fn": "CoreController.initialize",
      "offset": [
        1299,
        1318
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x33C"
    },
    "417": {
      "fn": "CoreController.initialize",
      "jump": "i",
      "offset": [
        1299,
        1328
      ],
      "op": "JUMP",
      "path": "88"
    },
    "418": {
      "fn": "CoreController.initialize",
      "offset": [
        1299,
        1328
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "419": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1288
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x1"
    },
    "421": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "DUP1",
      "path": "88"
    },
    "422": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SLOAD",
      "path": "88"
    },
    "423": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "425": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "427": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "429": {
      "op": "SHL"
    },
    "430": {
      "op": "SUB"
    },
    "431": {
      "op": "NOT"
    },
    "432": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "AND",
      "path": "88"
    },
    "433": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "435": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "437": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "439": {
      "op": "SHL"
    },
    "440": {
      "op": "SUB"
    },
    "441": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SWAP3",
      "path": "88"
    },
    "442": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "443": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SWAP3",
      "path": "88"
    },
    "444": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "AND",
      "path": "88"
    },
    "445": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SWAP2",
      "path": "88"
    },
    "446": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "447": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SWAP2",
      "path": "88"
    },
    "448": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "OR",
      "path": "88"
    },
    "449": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "450": {
      "fn": "CoreController.initialize",
      "offset": [
        1281,
        1329
      ],
      "op": "SSTORE",
      "path": "88"
    },
    "451": {
      "fn": "CoreController.initialize",
      "offset": [
        1251,
        1332
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "452": {
      "fn": "CoreController.initialize",
      "offset": [
        1350,
        1368
      ],
      "op": "PUSH2",
      "path": "88",
      "statement": 2,
      "value": "0x1CB"
    },
    "455": {
      "fn": "CoreController.initialize",
      "offset": [
        1350,
        1366
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x424"
    },
    "458": {
      "fn": "CoreController.initialize",
      "jump": "i",
      "offset": [
        1350,
        1368
      ],
      "op": "JUMP",
      "path": "88"
    },
    "459": {
      "fn": "CoreController.initialize",
      "offset": [
        1350,
        1368
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "460": {
      "offset": [
        3461,
        3475
      ],
      "op": "DUP1",
      "path": "10"
    },
    "461": {
      "offset": [
        3457,
        3556
      ],
      "op": "ISZERO",
      "path": "10"
    },
    "462": {
      "fn": "CoreController.initialize",
      "offset": [
        3457,
        3556
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x211"
    },
    "465": {
      "offset": [
        3457,
        3556
      ],
      "op": "JUMPI",
      "path": "10"
    },
    "466": {
      "offset": [
        3507,
        3512
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "468": {
      "offset": [
        3491,
        3512
      ],
      "op": "DUP1",
      "path": "10"
    },
    "469": {
      "fn": "CoreController.initialize",
      "offset": [
        3491,
        3512
      ],
      "op": "SLOAD",
      "path": "10"
    },
    "470": {
      "op": "PUSH2",
      "value": "0xFF00"
    },
    "473": {
      "op": "NOT"
    },
    "474": {
      "offset": [
        3491,
        3512
      ],
      "op": "AND",
      "path": "10"
    },
    "475": {
      "fn": "CoreController.initialize",
      "offset": [
        3491,
        3512
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "476": {
      "fn": "CoreController.initialize",
      "offset": [
        3491,
        3512
      ],
      "op": "SSTORE",
      "path": "10"
    },
    "477": {
      "offset": [
        3531,
        3545
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x40"
    },
    "479": {
      "fn": "CoreController.initialize",
      "offset": [
        3531,
        3545
      ],
      "op": "MLOAD",
      "path": "10"
    },
    "480": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "482": {
      "op": "DUP2"
    },
    "483": {
      "op": "MSTORE"
    },
    "484": {
      "offset": [
        3531,
        3545
      ],
      "op": "PUSH32",
      "path": "10",
      "value": "0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498"
    },
    "517": {
      "fn": "CoreController.initialize",
      "offset": [
        3531,
        3545
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "518": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "520": {
      "op": "ADD"
    },
    "521": {
      "offset": [
        3531,
        3545
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x40"
    },
    "523": {
      "fn": "CoreController.initialize",
      "offset": [
        3531,
        3545
      ],
      "op": "MLOAD",
      "path": "10"
    },
    "524": {
      "fn": "CoreController.initialize",
      "offset": [
        3531,
        3545
      ],
      "op": "DUP1",
      "path": "10"
    },
    "525": {
      "fn": "CoreController.initialize",
      "offset": [
        3531,
        3545
      ],
      "op": "SWAP2",
      "path": "10"
    },
    "526": {
      "fn": "CoreController.initialize",
      "offset": [
        3531,
        3545
      ],
      "op": "SUB",
      "path": "10"
    },
    "527": {
      "fn": "CoreController.initialize",
      "offset": [
        3531,
        3545
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "528": {
      "fn": "CoreController.initialize",
      "offset": [
        3531,
        3545
      ],
      "op": "LOG1",
      "path": "10"
    },
    "529": {
      "offset": [
        3457,
        3556
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "530": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "POP",
      "path": "88"
    },
    "531": {
      "fn": "CoreController.initialize",
      "offset": [
        1143,
        1375
      ],
      "op": "POP",
      "path": "88"
    },
    "532": {
      "fn": "CoreController.initialize",
      "jump": "o",
      "offset": [
        1143,
        1375
      ],
      "op": "JUMP",
      "path": "88"
    },
    "533": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "534": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        884
      ],
      "op": "PUSH1",
      "path": "76",
      "statement": 3,
      "value": "0x2"
    },
    "536": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        884
      ],
      "op": "SLOAD",
      "path": "76"
    },
    "537": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "539": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "540": {
      "op": "PUSH4",
      "value": "0x2B1C7F73"
    },
    "545": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "547": {
      "op": "SHL"
    },
    "548": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP2",
      "path": "76"
    },
    "549": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "550": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "552": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "554": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "556": {
      "op": "SHL"
    },
    "557": {
      "op": "SUB"
    },
    "558": {
      "op": "DUP4"
    },
    "559": {
      "op": "DUP2"
    },
    "560": {
      "op": "AND"
    },
    "561": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x4"
    },
    "563": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP4",
      "path": "76"
    },
    "564": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "ADD",
      "path": "76"
    },
    "565": {
      "op": "MSTORE"
    },
    "566": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        790,
        807
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "568": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        790,
        807
      ],
      "op": "SWAP3",
      "path": "76"
    },
    "569": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        790,
        807
      ],
      "op": "DUP4",
      "path": "76"
    },
    "570": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        790,
        807
      ],
      "op": "SWAP3",
      "path": "76"
    },
    "571": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        790,
        807
      ],
      "op": "DUP4",
      "path": "76"
    },
    "572": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        790,
        807
      ],
      "op": "SWAP3",
      "path": "76"
    },
    "573": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        884
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "574": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        884
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "575": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        884
      ],
      "op": "AND",
      "path": "76"
    },
    "576": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        884
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "577": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        899
      ],
      "op": "PUSH4",
      "path": "76",
      "value": "0x2B1C7F73"
    },
    "582": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        899
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "583": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "585": {
      "op": "ADD"
    },
    "586": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x20"
    },
    "588": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "590": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "591": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP1",
      "path": "76"
    },
    "592": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP4",
      "path": "76"
    },
    "593": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "SUB",
      "path": "76"
    },
    "594": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP2",
      "path": "76"
    },
    "595": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP7",
      "path": "76"
    },
    "596": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP1",
      "path": "76"
    },
    "597": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "EXTCODESIZE",
      "path": "76"
    },
    "598": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "599": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP1",
      "path": "76"
    },
    "600": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "601": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x261"
    },
    "604": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "605": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "607": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP1",
      "path": "76"
    },
    "608": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "REVERT",
      "path": "76"
    },
    "609": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "610": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "POP",
      "path": "76"
    },
    "611": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "GAS",
      "path": "76"
    },
    "612": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "STATICCALL",
      "path": "76"
    },
    "613": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "614": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP1",
      "path": "76"
    },
    "615": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "616": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x275"
    },
    "619": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "620": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "621": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "623": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP1",
      "path": "76"
    },
    "624": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "RETURNDATACOPY",
      "path": "76"
    },
    "625": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "626": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "628": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "REVERT",
      "path": "76"
    },
    "629": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "630": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "POP",
      "path": "76"
    },
    "631": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "POP",
      "path": "76"
    },
    "632": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "POP",
      "path": "76"
    },
    "633": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "POP",
      "path": "76"
    },
    "634": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "636": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "637": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "638": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x1F"
    },
    "640": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "NOT",
      "path": "76"
    },
    "641": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x1F"
    },
    "643": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP3",
      "path": "76"
    },
    "644": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "ADD",
      "path": "76"
    },
    "645": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "AND",
      "path": "76"
    },
    "646": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP3",
      "path": "76"
    },
    "647": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "ADD",
      "path": "76"
    },
    "648": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP1",
      "path": "76"
    },
    "649": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "651": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "652": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "POP",
      "path": "76"
    },
    "653": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "DUP2",
      "path": "76"
    },
    "654": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "ADD",
      "path": "76"
    },
    "655": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "656": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x299"
    },
    "659": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "660": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "661": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x5CA"
    },
    "664": {
      "fn": "LicenseController.getAuthorizationStatus",
      "jump": "i",
      "offset": [
        874,
        915
      ],
      "op": "JUMP",
      "path": "76"
    },
    "665": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        874,
        915
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "666": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        862,
        915
      ],
      "op": "SWAP3",
      "path": "76"
    },
    "667": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        862,
        915
      ],
      "op": "POP",
      "path": "76"
    },
    "668": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        940,
        963
      ],
      "op": "PUSH2",
      "path": "76",
      "statement": 4,
      "value": "0x2A4"
    },
    "671": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        953,
        962
      ],
      "op": "DUP4",
      "path": "76"
    },
    "672": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        940,
        952
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x4C6"
    },
    "675": {
      "fn": "LicenseController.getAuthorizationStatus",
      "jump": "i",
      "offset": [
        940,
        963
      ],
      "op": "JUMP",
      "path": "76"
    },
    "676": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        940,
        963
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "677": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        996
      ],
      "op": "PUSH1",
      "path": "76",
      "statement": 5,
      "value": "0x2"
    },
    "679": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        996
      ],
      "op": "SLOAD",
      "path": "76"
    },
    "680": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "682": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "683": {
      "op": "PUSH4",
      "value": "0xE61AE297"
    },
    "688": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "690": {
      "op": "SHL"
    },
    "691": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP2",
      "path": "76"
    },
    "692": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "693": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x4"
    },
    "695": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP2",
      "path": "76"
    },
    "696": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "ADD",
      "path": "76"
    },
    "697": {
      "op": "DUP7"
    },
    "698": {
      "op": "SWAP1"
    },
    "699": {
      "op": "MSTORE"
    },
    "700": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        925,
        963
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "701": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        925,
        963
      ],
      "op": "SWAP4",
      "path": "76"
    },
    "702": {
      "op": "POP"
    },
    "703": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "705": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "707": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "709": {
      "op": "SHL"
    },
    "710": {
      "op": "SUB"
    },
    "711": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        996
      ],
      "op": "AND",
      "path": "76"
    },
    "712": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        996
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "713": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1010
      ],
      "op": "PUSH4",
      "path": "76",
      "value": "0xE61AE297"
    },
    "718": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1010
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "719": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "721": {
      "op": "ADD"
    },
    "722": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x20"
    },
    "724": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "726": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "727": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP1",
      "path": "76"
    },
    "728": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP4",
      "path": "76"
    },
    "729": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "SUB",
      "path": "76"
    },
    "730": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP2",
      "path": "76"
    },
    "731": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP7",
      "path": "76"
    },
    "732": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP1",
      "path": "76"
    },
    "733": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "EXTCODESIZE",
      "path": "76"
    },
    "734": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "735": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP1",
      "path": "76"
    },
    "736": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "737": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x2E9"
    },
    "740": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "741": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "743": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP1",
      "path": "76"
    },
    "744": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "REVERT",
      "path": "76"
    },
    "745": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "746": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "POP",
      "path": "76"
    },
    "747": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "GAS",
      "path": "76"
    },
    "748": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "STATICCALL",
      "path": "76"
    },
    "749": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "750": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP1",
      "path": "76"
    },
    "751": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "752": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x2FD"
    },
    "755": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "756": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "757": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "759": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP1",
      "path": "76"
    },
    "760": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "RETURNDATACOPY",
      "path": "76"
    },
    "761": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "762": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "764": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "REVERT",
      "path": "76"
    },
    "765": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "766": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "POP",
      "path": "76"
    },
    "767": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "POP",
      "path": "76"
    },
    "768": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "POP",
      "path": "76"
    },
    "769": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "POP",
      "path": "76"
    },
    "770": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "772": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "773": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "774": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x1F"
    },
    "776": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "NOT",
      "path": "76"
    },
    "777": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x1F"
    },
    "779": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP3",
      "path": "76"
    },
    "780": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "ADD",
      "path": "76"
    },
    "781": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "AND",
      "path": "76"
    },
    "782": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP3",
      "path": "76"
    },
    "783": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "ADD",
      "path": "76"
    },
    "784": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP1",
      "path": "76"
    },
    "785": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "787": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "788": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "POP",
      "path": "76"
    },
    "789": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "DUP2",
      "path": "76"
    },
    "790": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "ADD",
      "path": "76"
    },
    "791": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "792": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x321"
    },
    "795": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "796": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "797": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x58F"
    },
    "800": {
      "fn": "LicenseController.getAuthorizationStatus",
      "jump": "i",
      "offset": [
        986,
        1021
      ],
      "op": "JUMP",
      "path": "76"
    },
    "801": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        986,
        1021
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "802": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "SWAP3",
      "path": "76"
    },
    "803": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "SWAP5",
      "path": "76"
    },
    "804": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "805": {
      "fn": "LicenseController.getAuthorizationStatus",
      "offset": [
        680,
        1028
      ],
      "op": "SWAP4",
      "path": "76"
    },
    "806": {
      "op": "POP"
    },
    "807": {
      "op": "POP"
    },
    "808": {
      "fn": "LicenseController.getAuthorizationStatus",
      "jump": "o",
      "offset": [
        680,
        1028
      ],
      "op": "JUMP",
      "path": "76"
    },
    "809": {
      "fn": "Address.isContract",
      "offset": [
        1175,
        1495
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "810": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "812": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "814": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "816": {
      "op": "SHL"
    },
    "817": {
      "op": "SUB"
    },
    "818": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "DUP2",
      "path": "21",
      "statement": 6
    },
    "819": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "AND",
      "path": "21"
    },
    "820": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "EXTCODESIZE",
      "path": "21"
    },
    "821": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1488
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "822": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1488
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "823": {
      "fn": "Address.isContract",
      "offset": [
        1175,
        1495
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "824": {
      "fn": "Address.isContract",
      "offset": [
        1175,
        1495
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "825": {
      "fn": "Address.isContract",
      "offset": [
        1175,
        1495
      ],
      "op": "SWAP1",
      "path": "21"
    },
    "826": {
      "fn": "Address.isContract",
      "offset": [
        1175,
        1495
      ],
      "op": "POP",
      "path": "21"
    },
    "827": {
      "fn": "Address.isContract",
      "jump": "o",
      "offset": [
        1175,
        1495
      ],
      "op": "JUMP",
      "path": "21"
    },
    "828": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1530,
        1823
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "829": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1604,
        1627
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x0"
    },
    "831": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1667
      ],
      "op": "DUP1",
      "path": "88",
      "statement": 7
    },
    "832": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1667
      ],
      "op": "SLOAD",
      "path": "88"
    },
    "833": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x40"
    },
    "835": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "MLOAD",
      "path": "88"
    },
    "836": {
      "op": "PUSH4",
      "value": "0x1C2D8FB3"
    },
    "841": {
      "op": "PUSH1",
      "value": "0xE3"
    },
    "843": {
      "op": "SHL"
    },
    "844": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP2",
      "path": "88"
    },
    "845": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "MSTORE",
      "path": "88"
    },
    "846": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x4"
    },
    "848": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP2",
      "path": "88"
    },
    "849": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "ADD",
      "path": "88"
    },
    "850": {
      "op": "DUP5"
    },
    "851": {
      "op": "SWAP1"
    },
    "852": {
      "op": "MSTORE"
    },
    "853": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1667
      ],
      "op": "PUSH3",
      "path": "88",
      "value": "0x10000"
    },
    "857": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1667
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "858": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1667
      ],
      "op": "SWAP2",
      "path": "88"
    },
    "859": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1667
      ],
      "op": "DIV",
      "path": "88"
    },
    "860": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "862": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "864": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "866": {
      "op": "SHL"
    },
    "867": {
      "op": "SUB"
    },
    "868": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1667
      ],
      "op": "AND",
      "path": "88"
    },
    "869": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1667
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "870": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1679
      ],
      "op": "PUSH4",
      "path": "88",
      "value": "0xE16C7D98"
    },
    "875": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1679
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "876": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "878": {
      "op": "ADD"
    },
    "879": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x20"
    },
    "881": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x40"
    },
    "883": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "MLOAD",
      "path": "88"
    },
    "884": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP1",
      "path": "88"
    },
    "885": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP4",
      "path": "88"
    },
    "886": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "SUB",
      "path": "88"
    },
    "887": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP2",
      "path": "88"
    },
    "888": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP7",
      "path": "88"
    },
    "889": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP1",
      "path": "88"
    },
    "890": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "EXTCODESIZE",
      "path": "88"
    },
    "891": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "ISZERO",
      "path": "88"
    },
    "892": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP1",
      "path": "88"
    },
    "893": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "ISZERO",
      "path": "88"
    },
    "894": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x386"
    },
    "897": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "JUMPI",
      "path": "88"
    },
    "898": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x0"
    },
    "900": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP1",
      "path": "88"
    },
    "901": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "REVERT",
      "path": "88"
    },
    "902": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "903": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "POP",
      "path": "88"
    },
    "904": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "GAS",
      "path": "88"
    },
    "905": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "STATICCALL",
      "path": "88"
    },
    "906": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "ISZERO",
      "path": "88"
    },
    "907": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP1",
      "path": "88"
    },
    "908": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "ISZERO",
      "path": "88"
    },
    "909": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x39A"
    },
    "912": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "JUMPI",
      "path": "88"
    },
    "913": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "RETURNDATASIZE",
      "path": "88"
    },
    "914": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x0"
    },
    "916": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP1",
      "path": "88"
    },
    "917": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "RETURNDATACOPY",
      "path": "88"
    },
    "918": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "RETURNDATASIZE",
      "path": "88"
    },
    "919": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x0"
    },
    "921": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "REVERT",
      "path": "88"
    },
    "922": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "923": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "POP",
      "path": "88"
    },
    "924": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "POP",
      "path": "88"
    },
    "925": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "POP",
      "path": "88"
    },
    "926": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "POP",
      "path": "88"
    },
    "927": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x40"
    },
    "929": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "MLOAD",
      "path": "88"
    },
    "930": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "RETURNDATASIZE",
      "path": "88"
    },
    "931": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x1F"
    },
    "933": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "NOT",
      "path": "88"
    },
    "934": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x1F"
    },
    "936": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP3",
      "path": "88"
    },
    "937": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "ADD",
      "path": "88"
    },
    "938": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "AND",
      "path": "88"
    },
    "939": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP3",
      "path": "88"
    },
    "940": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "ADD",
      "path": "88"
    },
    "941": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP1",
      "path": "88"
    },
    "942": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x40"
    },
    "944": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "MSTORE",
      "path": "88"
    },
    "945": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "POP",
      "path": "88"
    },
    "946": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "DUP2",
      "path": "88"
    },
    "947": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "ADD",
      "path": "88"
    },
    "948": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "949": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x3BE"
    },
    "952": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "SWAP2",
      "path": "88"
    },
    "953": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "954": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x58F"
    },
    "957": {
      "fn": "CoreController._getContractAddress",
      "jump": "i",
      "offset": [
        1658,
        1693
      ],
      "op": "JUMP",
      "path": "88"
    },
    "958": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1658,
        1693
      ],
      "op": "JUMPDEST",
      "path": "88"
    },
    "959": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1640,
        1693
      ],
      "op": "SWAP1",
      "path": "88"
    },
    "960": {
      "op": "POP"
    },
    "961": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "963": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "965": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "967": {
      "op": "SHL"
    },
    "968": {
      "op": "SUB"
    },
    "969": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1724,
        1753
      ],
      "op": "DUP2",
      "path": "88",
      "statement": 8
    },
    "970": {
      "branch": 12,
      "fn": "CoreController._getContractAddress",
      "offset": [
        1724,
        1753
      ],
      "op": "AND",
      "path": "88"
    },
    "971": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x337"
    },
    "974": {
      "branch": 12,
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "JUMPI",
      "path": "88"
    },
    "975": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x40"
    },
    "977": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "MLOAD",
      "path": "88"
    },
    "978": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "982": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "984": {
      "op": "SHL"
    },
    "985": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "DUP2",
      "path": "88"
    },
    "986": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "MSTORE",
      "path": "88"
    },
    "987": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "989": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "PUSH1",
      "path": "88",
      "value": "0x4"
    },
    "991": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "DUP3",
      "path": "88"
    },
    "992": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "ADD",
      "path": "88"
    },
    "993": {
      "op": "MSTORE"
    },
    "994": {
      "op": "PUSH1",
      "value": "0x25"
    },
    "996": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "998": {
      "op": "DUP3"
    },
    "999": {
      "op": "ADD"
    },
    "1000": {
      "op": "MSTORE"
    },
    "1001": {
      "op": "PUSH32",
      "value": "0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953"
    },
    "1034": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1036": {
      "op": "DUP3"
    },
    "1037": {
      "op": "ADD"
    },
    "1038": {
      "op": "MSTORE"
    },
    "1039": {
      "op": "PUSH5",
      "value": "0x1511549151"
    },
    "1045": {
      "op": "PUSH1",
      "value": "0xDA"
    },
    "1047": {
      "op": "SHL"
    },
    "1048": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1050": {
      "op": "DUP3"
    },
    "1051": {
      "op": "ADD"
    },
    "1052": {
      "op": "MSTORE"
    },
    "1053": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1055": {
      "op": "ADD"
    },
    "1056": {
      "fn": "CoreController._getContractAddress",
      "offset": [
        1703,
        1816
      ],
      "op": "PUSH2",
      "path": "88",
      "value": "0x12B"
    },
    "1059": {
      "op": "JUMP"
    },
    "1060": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        460,
        606
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "1061": {
      "offset": [
        4888,
        4901
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "1063": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4888,
        4901
      ],
      "op": "SLOAD",
      "path": "10"
    },
    "1064": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4888,
        4901
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x100"
    },
    "1067": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4888,
        4901
      ],
      "op": "SWAP1",
      "path": "10"
    },
    "1068": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4888,
        4901
      ],
      "op": "DIV",
      "path": "10"
    },
    "1069": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4888,
        4901
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0xFF"
    },
    "1071": {
      "branch": 14,
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4888,
        4901
      ],
      "op": "AND",
      "path": "10"
    },
    "1072": {
      "offset": [
        4880,
        4949
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x48F"
    },
    "1075": {
      "branch": 14,
      "offset": [
        4880,
        4949
      ],
      "op": "JUMPI",
      "path": "10"
    },
    "1076": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4880,
        4949
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x40"
    },
    "1078": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4880,
        4949
      ],
      "op": "MLOAD",
      "path": "10"
    },
    "1079": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1083": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1085": {
      "op": "SHL"
    },
    "1086": {
      "offset": [
        4880,
        4949
      ],
      "op": "DUP2",
      "path": "10"
    },
    "1087": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4880,
        4949
      ],
      "op": "MSTORE",
      "path": "10"
    },
    "1088": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1090": {
      "offset": [
        4880,
        4949
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x4"
    },
    "1092": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4880,
        4949
      ],
      "op": "DUP3",
      "path": "10"
    },
    "1093": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        4880,
        4949
      ],
      "op": "ADD",
      "path": "10"
    },
    "1094": {
      "op": "MSTORE"
    },
    "1095": {
      "op": "PUSH1",
      "value": "0x2B"
    },
    "1097": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1099": {
      "op": "DUP3"
    },
    "1100": {
      "op": "ADD"
    },
    "1101": {
      "op": "MSTORE"
    },
    "1102": {
      "op": "PUSH32",
      "value": "0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069"
    },
    "1135": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1137": {
      "op": "DUP3"
    },
    "1138": {
      "op": "ADD"
    },
    "1139": {
      "op": "MSTORE"
    },
    "1140": {
      "op": "PUSH11",
      "value": "0x6E697469616C697A696E67"
    },
    "1152": {
      "op": "PUSH1",
      "value": "0xA8"
    },
    "1154": {
      "op": "SHL"
    },
    "1155": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1157": {
      "op": "DUP3"
    },
    "1158": {
      "op": "ADD"
    },
    "1159": {
      "op": "MSTORE"
    },
    "1160": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1162": {
      "op": "ADD"
    },
    "1163": {
      "offset": [
        4880,
        4949
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x12B"
    },
    "1166": {
      "op": "JUMP"
    },
    "1167": {
      "offset": [
        4880,
        4949
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "1168": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        566,
        598
      ],
      "op": "PUSH2",
      "path": "76",
      "statement": 9,
      "value": "0x4A4"
    },
    "1171": {
      "op": "PUSH9",
      "value": "0x10DBDB5C1BDB995B9D"
    },
    "1181": {
      "op": "PUSH1",
      "value": "0xBA"
    },
    "1183": {
      "op": "SHL"
    },
    "1184": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        566,
        585
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x33C"
    },
    "1187": {
      "fn": "LicenseController._afterInitialize",
      "jump": "i",
      "offset": [
        566,
        598
      ],
      "op": "JUMP",
      "path": "76"
    },
    "1188": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        566,
        598
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "1189": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        543
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x2"
    },
    "1191": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "DUP1",
      "path": "76"
    },
    "1192": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SLOAD",
      "path": "76"
    },
    "1193": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1195": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1197": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1199": {
      "op": "SHL"
    },
    "1200": {
      "op": "SUB"
    },
    "1201": {
      "op": "NOT"
    },
    "1202": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "AND",
      "path": "76"
    },
    "1203": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1205": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1207": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1209": {
      "op": "SHL"
    },
    "1210": {
      "op": "SUB"
    },
    "1211": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SWAP3",
      "path": "76"
    },
    "1212": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "1213": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SWAP3",
      "path": "76"
    },
    "1214": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "AND",
      "path": "76"
    },
    "1215": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "1216": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "1217": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "1218": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "OR",
      "path": "76"
    },
    "1219": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "1220": {
      "fn": "LicenseController._afterInitialize",
      "offset": [
        533,
        599
      ],
      "op": "SSTORE",
      "path": "76"
    },
    "1221": {
      "fn": "LicenseController._afterInitialize",
      "jump": "o",
      "offset": [
        460,
        606
      ],
      "op": "JUMP",
      "path": "76"
    },
    "1222": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1034,
        1203
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "1223": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1098,
        1102
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "1225": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1164,
        1196
      ],
      "op": "PUSH1",
      "path": "76",
      "statement": 10,
      "value": "0x3"
    },
    "1227": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1131
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x2"
    },
    "1229": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1131
      ],
      "op": "SLOAD",
      "path": "76"
    },
    "1230": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "1232": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "1233": {
      "op": "PUSH4",
      "value": "0x5E966E45"
    },
    "1238": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1240": {
      "op": "SHL"
    },
    "1241": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP2",
      "path": "76"
    },
    "1242": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "1243": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x4"
    },
    "1245": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP2",
      "path": "76"
    },
    "1246": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "ADD",
      "path": "76"
    },
    "1247": {
      "op": "DUP6"
    },
    "1248": {
      "op": "SWAP1"
    },
    "1249": {
      "op": "MSTORE"
    },
    "1250": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1252": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1254": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1256": {
      "op": "SHL"
    },
    "1257": {
      "op": "SUB"
    },
    "1258": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1131
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "1259": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1131
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "1260": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1131
      ],
      "op": "AND",
      "path": "76"
    },
    "1261": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1131
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "1262": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1149
      ],
      "op": "PUSH4",
      "path": "76",
      "value": "0x5E966E45"
    },
    "1267": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1149
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "1268": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1270": {
      "op": "ADD"
    },
    "1271": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x20"
    },
    "1273": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "1275": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "1276": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP1",
      "path": "76"
    },
    "1277": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP4",
      "path": "76"
    },
    "1278": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "SUB",
      "path": "76"
    },
    "1279": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP2",
      "path": "76"
    },
    "1280": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP7",
      "path": "76"
    },
    "1281": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP1",
      "path": "76"
    },
    "1282": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "EXTCODESIZE",
      "path": "76"
    },
    "1283": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "1284": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP1",
      "path": "76"
    },
    "1285": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "1286": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x50E"
    },
    "1289": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "1290": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "1292": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP1",
      "path": "76"
    },
    "1293": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "REVERT",
      "path": "76"
    },
    "1294": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "1295": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "POP",
      "path": "76"
    },
    "1296": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "GAS",
      "path": "76"
    },
    "1297": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "STATICCALL",
      "path": "76"
    },
    "1298": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "1299": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP1",
      "path": "76"
    },
    "1300": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "1301": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x522"
    },
    "1304": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "1305": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "1306": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "1308": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP1",
      "path": "76"
    },
    "1309": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "RETURNDATACOPY",
      "path": "76"
    },
    "1310": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "1311": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "1313": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "REVERT",
      "path": "76"
    },
    "1314": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "1315": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "POP",
      "path": "76"
    },
    "1316": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "POP",
      "path": "76"
    },
    "1317": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "POP",
      "path": "76"
    },
    "1318": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "POP",
      "path": "76"
    },
    "1319": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "1321": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "MLOAD",
      "path": "76"
    },
    "1322": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "RETURNDATASIZE",
      "path": "76"
    },
    "1323": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x1F"
    },
    "1325": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "NOT",
      "path": "76"
    },
    "1326": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x1F"
    },
    "1328": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP3",
      "path": "76"
    },
    "1329": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "ADD",
      "path": "76"
    },
    "1330": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "AND",
      "path": "76"
    },
    "1331": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP3",
      "path": "76"
    },
    "1332": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "ADD",
      "path": "76"
    },
    "1333": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP1",
      "path": "76"
    },
    "1334": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x40"
    },
    "1336": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "1337": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "POP",
      "path": "76"
    },
    "1338": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "DUP2",
      "path": "76"
    },
    "1339": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "ADD",
      "path": "76"
    },
    "1340": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "1341": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x546"
    },
    "1344": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "1345": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "SWAP1",
      "path": "76"
    },
    "1346": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x5AB"
    },
    "1349": {
      "fn": "LicenseController._isValidCall",
      "jump": "i",
      "offset": [
        1121,
        1160
      ],
      "op": "JUMP",
      "path": "76"
    },
    "1350": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1160
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "1351": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x6"
    },
    "1353": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "DUP2",
      "path": "76"
    },
    "1354": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "GT",
      "path": "76"
    },
    "1355": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "ISZERO",
      "path": "76"
    },
    "1356": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "PUSH2",
      "path": "76",
      "value": "0x565"
    },
    "1359": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "JUMPI",
      "path": "76"
    },
    "1360": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "1365": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1367": {
      "op": "SHL"
    },
    "1368": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "1370": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "1371": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x21"
    },
    "1373": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x4"
    },
    "1375": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "MSTORE",
      "path": "76"
    },
    "1376": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x24"
    },
    "1378": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "PUSH1",
      "path": "76",
      "value": "0x0"
    },
    "1380": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "REVERT",
      "path": "76"
    },
    "1381": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "JUMPDEST",
      "path": "76"
    },
    "1382": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "EQ",
      "path": "76"
    },
    "1383": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1121,
        1196
      ],
      "op": "SWAP3",
      "path": "76"
    },
    "1384": {
      "fn": "LicenseController._isValidCall",
      "offset": [
        1034,
        1203
      ],
      "op": "SWAP2",
      "path": "76"
    },
    "1385": {
      "op": "POP"
    },
    "1386": {
      "op": "POP"
    },
    "1387": {
      "fn": "LicenseController._isValidCall",
      "jump": "o",
      "offset": [
        1034,
        1203
      ],
      "op": "JUMP",
      "path": "76"
    },
    "1388": {
      "op": "JUMPDEST"
    },
    "1389": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1391": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1393": {
      "op": "DUP3"
    },
    "1394": {
      "op": "DUP5"
    },
    "1395": {
      "op": "SUB"
    },
    "1396": {
      "op": "SLT"
    },
    "1397": {
      "op": "ISZERO"
    },
    "1398": {
      "op": "PUSH2",
      "value": "0x57D"
    },
    "1401": {
      "op": "JUMPI"
    },
    "1402": {
      "op": "DUP1"
    },
    "1403": {
      "op": "DUP2"
    },
    "1404": {
      "op": "REVERT"
    },
    "1405": {
      "op": "JUMPDEST"
    },
    "1406": {
      "op": "DUP2"
    },
    "1407": {
      "op": "CALLDATALOAD"
    },
    "1408": {
      "op": "PUSH2",
      "value": "0x588"
    },
    "1411": {
      "op": "DUP2"
    },
    "1412": {
      "op": "PUSH2",
      "value": "0x5E2"
    },
    "1415": {
      "jump": "i",
      "op": "JUMP"
    },
    "1416": {
      "op": "JUMPDEST"
    },
    "1417": {
      "op": "SWAP4"
    },
    "1418": {
      "op": "SWAP3"
    },
    "1419": {
      "op": "POP"
    },
    "1420": {
      "op": "POP"
    },
    "1421": {
      "op": "POP"
    },
    "1422": {
      "jump": "o",
      "op": "JUMP"
    },
    "1423": {
      "op": "JUMPDEST"
    },
    "1424": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1426": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1428": {
      "op": "DUP3"
    },
    "1429": {
      "op": "DUP5"
    },
    "1430": {
      "op": "SUB"
    },
    "1431": {
      "op": "SLT"
    },
    "1432": {
      "op": "ISZERO"
    },
    "1433": {
      "op": "PUSH2",
      "value": "0x5A0"
    },
    "1436": {
      "op": "JUMPI"
    },
    "1437": {
      "op": "DUP1"
    },
    "1438": {
      "op": "DUP2"
    },
    "1439": {
      "op": "REVERT"
    },
    "1440": {
      "op": "JUMPDEST"
    },
    "1441": {
      "op": "DUP2"
    },
    "1442": {
      "op": "MLOAD"
    },
    "1443": {
      "op": "PUSH2",
      "value": "0x588"
    },
    "1446": {
      "op": "DUP2"
    },
    "1447": {
      "op": "PUSH2",
      "value": "0x5E2"
    },
    "1450": {
      "jump": "i",
      "op": "JUMP"
    },
    "1451": {
      "op": "JUMPDEST"
    },
    "1452": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1454": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1456": {
      "op": "DUP3"
    },
    "1457": {
      "op": "DUP5"
    },
    "1458": {
      "op": "SUB"
    },
    "1459": {
      "op": "SLT"
    },
    "1460": {
      "op": "ISZERO"
    },
    "1461": {
      "op": "PUSH2",
      "value": "0x5BC"
    },
    "1464": {
      "op": "JUMPI"
    },
    "1465": {
      "op": "DUP1"
    },
    "1466": {
      "op": "DUP2"
    },
    "1467": {
      "op": "REVERT"
    },
    "1468": {
      "op": "JUMPDEST"
    },
    "1469": {
      "op": "DUP2"
    },
    "1470": {
      "op": "MLOAD"
    },
    "1471": {
      "op": "PUSH1",
      "value": "0x7"
    },
    "1473": {
      "op": "DUP2"
    },
    "1474": {
      "op": "LT"
    },
    "1475": {
      "op": "PUSH2",
      "value": "0x588"
    },
    "1478": {
      "op": "JUMPI"
    },
    "1479": {
      "op": "DUP2"
    },
    "1480": {
      "op": "DUP3"
    },
    "1481": {
      "op": "REVERT"
    },
    "1482": {
      "op": "JUMPDEST"
    },
    "1483": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1485": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1487": {
      "op": "DUP3"
    },
    "1488": {
      "op": "DUP5"
    },
    "1489": {
      "op": "SUB"
    },
    "1490": {
      "op": "SLT"
    },
    "1491": {
      "op": "ISZERO"
    },
    "1492": {
      "op": "PUSH2",
      "value": "0x5DB"
    },
    "1495": {
      "op": "JUMPI"
    },
    "1496": {
      "op": "DUP1"
    },
    "1497": {
      "op": "DUP2"
    },
    "1498": {
      "op": "REVERT"
    },
    "1499": {
      "op": "JUMPDEST"
    },
    "1500": {
      "op": "POP"
    },
    "1501": {
      "op": "MLOAD"
    },
    "1502": {
      "op": "SWAP2"
    },
    "1503": {
      "op": "SWAP1"
    },
    "1504": {
      "op": "POP"
    },
    "1505": {
      "jump": "o",
      "op": "JUMP"
    },
    "1506": {
      "op": "JUMPDEST"
    },
    "1507": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1509": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1511": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1513": {
      "op": "SHL"
    },
    "1514": {
      "op": "SUB"
    },
    "1515": {
      "op": "DUP2"
    },
    "1516": {
      "op": "AND"
    },
    "1517": {
      "op": "DUP2"
    },
    "1518": {
      "op": "EQ"
    },
    "1519": {
      "op": "PUSH2",
      "value": "0x5F7"
    },
    "1522": {
      "op": "JUMPI"
    },
    "1523": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1525": {
      "op": "DUP1"
    },
    "1526": {
      "op": "REVERT"
    },
    "1527": {
      "op": "JUMPDEST"
    },
    "1528": {
      "op": "POP"
    },
    "1529": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "ea9e14bbafbc7650a2665115d2229e88ab619b29",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ILicense.sol\";\n\n\ncontract LicenseController is\n    ILicense, \n    CoreController\n{\n\n    ComponentController private _component;\n\n    function _afterInitialize() internal override onlyInitializing {\n        _component = ComponentController(_getContractAddress(\"Component\"));\n    }\n\n    // ensures that calling component (productAddress) is a product\n    function getAuthorizationStatus(address productAddress)\n        public override\n        view\n        returns (uint256 productId, bool isAuthorized, address policyFlow)\n    {\n        productId = _component.getComponentId(productAddress);\n        isAuthorized = _isValidCall(productId);\n        policyFlow = _component.getPolicyFlow(productId);\n    }\n\n    function _isValidCall(uint256 productId) internal view returns (bool) {\n        return _component.getComponentState(productId) == IComponent.ComponentState.Active;\n    }\n\n    function _getProduct(uint256 id) internal view returns (IProduct product) {\n        require(_component.isProduct(id), \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\");\n        IComponent cmp = _component.getComponent(id);\n        product = IProduct(address(cmp));\n    }\n}\n",
  "sourceMap": "344:1126:76:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;344:1126:76;;5366:279:10;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:10;;216:2:103;5425:66:10;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:10;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:10;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:10;;552:2:103;537:18;5600:28:10;;;;;;;5501:138;5366:279::o;519:87:103:-;344:1126:76;;;;;;",
  "sourcePath": "contracts/modules/LicenseController.sol",
  "type": "contract"
}