{
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "UFixed",
          "name": "oldRewardRate",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "UFixed",
          "name": "newRewardRate",
          "type": "uint256"
        }
      ],
      "name": "LogDefaultRewardRateSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "NftId",
          "name": "target",
          "type": "uint96"
        },
        {
          "indexed": false,
          "internalType": "UFixed",
          "name": "oldRewardRate",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "UFixed",
          "name": "newRewardRate",
          "type": "uint256"
        }
      ],
      "name": "LogTargetRewardRateSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "EXP",
      "outputs": [
        {
          "internalType": "int8",
          "name": "",
          "type": "int8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_REWARD_RATE_EXP",
      "outputs": [
        {
          "internalType": "int8",
          "name": "",
          "type": "int8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_REWARD_RATE_VALUE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MULTIPLIER",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MULTIPLIER_HALF",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ROUNDING_DEFAULT",
      "outputs": [
        {
          "internalType": "enum UFixedType.Rounding",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "YEAR_DURATION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "duration",
          "type": "uint256"
        },
        {
          "internalType": "UFixed",
          "name": "rate",
          "type": "uint256"
        }
      ],
      "name": "calculateRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "rewardAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "UFixed",
          "name": "a",
          "type": "uint256"
        },
        {
          "internalType": "enum UFixedType.Rounding",
          "name": "rounding",
          "type": "uint8"
        }
      ],
      "name": "ftoi",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "UFixed",
          "name": "a",
          "type": "uint256"
        }
      ],
      "name": "ftoi",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "target",
          "type": "uint96"
        }
      ],
      "name": "getTargetRewardRate",
      "outputs": [
        {
          "internalType": "UFixed",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "a",
          "type": "uint256"
        }
      ],
      "name": "itof",
      "outputs": [
        {
          "internalType": "UFixed",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "a",
          "type": "uint256"
        },
        {
          "internalType": "int8",
          "name": "exp",
          "type": "int8"
        }
      ],
      "name": "itof",
      "outputs": [
        {
          "internalType": "UFixed",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxRewardRate",
      "outputs": [
        {
          "internalType": "UFixed",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardRate",
      "outputs": [
        {
          "internalType": "UFixed",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "UFixed",
          "name": "newRewardRate",
          "type": "uint256"
        }
      ],
      "name": "setRewardRate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "target",
          "type": "uint96"
        },
        {
          "internalType": "UFixed",
          "name": "newRewardRate",
          "type": "uint256"
        }
      ],
      "name": "setTargetRewardRate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "23": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Context.sol",
    "34": "contracts/registry/IChainNft.sol",
    "43": "contracts/shared/IBaseTypes.sol",
    "47": "contracts/shared/UFixedMath.sol",
    "52": "contracts/staking/RewardHelper.sol",
    "6": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/access/Ownable.sol"
  },
  "ast": {
    "absolutePath": "contracts/staking/RewardHelper.sol",
    "exportedSymbols": {
      "NftId": [
        3353
      ],
      "Ownable": [
        12623
      ],
      "RewardHelper": [
        6866
      ],
      "Timestamp": [
        4530
      ],
      "UFixed": [
        5099
      ],
      "UFixedType": [
        5591
      ],
      "blockTimestamp": [
        4700
      ],
      "zeroTimestamp": [
        4711
      ]
    },
    "id": 6867,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6591,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:24:52"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 6593,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6867,
        "sourceUnit": 12624,
        "src": "65:67:52",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6592,
              "name": "Ownable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 12623,
              "src": "73:7:52",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/shared/IBaseTypes.sol",
        "file": "../shared/IBaseTypes.sol",
        "id": 6597,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6867,
        "sourceUnit": 4754,
        "src": "134:82:52",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6594,
              "name": "Timestamp",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4530,
              "src": "142:9:52",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6595,
              "name": "blockTimestamp",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4700,
              "src": "153:14:52",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6596,
              "name": "zeroTimestamp",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4711,
              "src": "169:13:52",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/shared/UFixedMath.sol",
        "file": "../shared/UFixedMath.sol",
        "id": 6600,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6867,
        "sourceUnit": 5592,
        "src": "217:60:52",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6598,
              "name": "UFixed",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 5099,
              "src": "225:6:52",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6599,
              "name": "UFixedType",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 5591,
              "src": "233:10:52",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/registry/IChainNft.sol",
        "file": "../registry/IChainNft.sol",
        "id": 6602,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6867,
        "sourceUnit": 3495,
        "src": "278:48:52",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6601,
              "name": "NftId",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 3353,
              "src": "286:5:52",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 6603,
              "name": "Ownable",
              "nameLocations": [
                "358:7:52"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 12623,
              "src": "358:7:52"
            },
            "id": 6604,
            "nodeType": "InheritanceSpecifier",
            "src": "358:7:52"
          },
          {
            "baseName": {
              "id": 6605,
              "name": "UFixedType",
              "nameLocations": [
                "371:10:52"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 5591,
              "src": "371:10:52"
            },
            "id": 6606,
            "nodeType": "InheritanceSpecifier",
            "src": "371:10:52"
          }
        ],
        "canonicalName": "RewardHelper",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 6866,
        "linearizedBaseContracts": [
          6866,
          5591,
          12623,
          16878
        ],
        "name": "RewardHelper",
        "nameLocation": "338:12:52",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "78a987ba",
            "id": 6609,
            "mutability": "constant",
            "name": "MAX_REWARD_RATE_VALUE",
            "nameLocation": "412:21:52",
            "nodeType": "VariableDeclaration",
            "scope": 6866,
            "src": "388:51:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 6607,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "388:7:52",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "333333",
              "id": 6608,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "436:3:52",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_333_by_1",
                "typeString": "int_const 333"
              },
              "value": "333"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "b38ea175",
            "id": 6613,
            "mutability": "constant",
            "name": "MAX_REWARD_RATE_EXP",
            "nameLocation": "466:19:52",
            "nodeType": "VariableDeclaration",
            "scope": 6866,
            "src": "445:45:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int8",
              "typeString": "int8"
            },
            "typeName": {
              "id": 6610,
              "name": "int8",
              "nodeType": "ElementaryTypeName",
              "src": "445:4:52",
              "typeDescriptions": {
                "typeIdentifier": "t_int8",
                "typeString": "int8"
              }
            },
            "value": {
              "id": 6612,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "-",
              "prefix": true,
              "src": "488:2:52",
              "subExpression": {
                "hexValue": "33",
                "id": 6611,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "489:1:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_3_by_1",
                  "typeString": "int_const 3"
                },
                "value": "3"
              },
              "typeDescriptions": {
                "typeIdentifier": "t_rational_minus_3_by_1",
                "typeString": "int_const -3"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "0dc0ba72",
            "id": 6616,
            "mutability": "constant",
            "name": "YEAR_DURATION",
            "nameLocation": "520:13:52",
            "nodeType": "VariableDeclaration",
            "scope": 6866,
            "src": "496:48:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 6614,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "496:7:52",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "333635",
              "id": 6615,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "536:8:52",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_31536000_by_1",
                "typeString": "int_const 31536000"
              },
              "value": "365"
            },
            "visibility": "public"
          },
          {
            "canonicalName": "RewardHelper.RewardInfo",
            "id": 6626,
            "members": [
              {
                "constant": false,
                "id": 6619,
                "mutability": "mutable",
                "name": "rewardRate",
                "nameLocation": "586:10:52",
                "nodeType": "VariableDeclaration",
                "scope": 6626,
                "src": "579:17:52",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                  "typeString": "UFixed"
                },
                "typeName": {
                  "id": 6618,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 6617,
                    "name": "UFixed",
                    "nameLocations": [
                      "579:6:52"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 5099,
                    "src": "579:6:52"
                  },
                  "referencedDeclaration": 5099,
                  "src": "579:6:52",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6622,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "616:9:52",
                "nodeType": "VariableDeclaration",
                "scope": 6626,
                "src": "606:19:52",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                  "typeString": "Timestamp"
                },
                "typeName": {
                  "id": 6621,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 6620,
                    "name": "Timestamp",
                    "nameLocations": [
                      "606:9:52"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 4530,
                    "src": "606:9:52"
                  },
                  "referencedDeclaration": 4530,
                  "src": "606:9:52",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                    "typeString": "Timestamp"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6625,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "645:9:52",
                "nodeType": "VariableDeclaration",
                "scope": 6626,
                "src": "635:19:52",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                  "typeString": "Timestamp"
                },
                "typeName": {
                  "id": 6624,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 6623,
                    "name": "Timestamp",
                    "nameLocations": [
                      "635:9:52"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 4530,
                    "src": "635:9:52"
                  },
                  "referencedDeclaration": 4530,
                  "src": "635:9:52",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                    "typeString": "Timestamp"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RewardInfo",
            "nameLocation": "558:10:52",
            "nodeType": "StructDefinition",
            "scope": 6866,
            "src": "551:110:52",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "eventSelector": "b3dadab54c4cf13d74f841f035ba6d7da492144b56ca32d1d0d340aeb2323fa7",
            "id": 6639,
            "name": "LogTargetRewardRateSet",
            "nameLocation": "673:22:52",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6628,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "user",
                  "nameLocation": "713:4:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6639,
                  "src": "705:12:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6627,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "705:7:52",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6631,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "target",
                  "nameLocation": "733:6:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6639,
                  "src": "727:12:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 6630,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6629,
                      "name": "NftId",
                      "nameLocations": [
                        "727:5:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "727:5:52"
                    },
                    "referencedDeclaration": 3353,
                    "src": "727:5:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6634,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "oldRewardRate",
                  "nameLocation": "756:13:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6639,
                  "src": "749:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6633,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6632,
                      "name": "UFixed",
                      "nameLocations": [
                        "749:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "749:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "749:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6637,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "newRewardRate",
                  "nameLocation": "786:13:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6639,
                  "src": "779:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6636,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6635,
                      "name": "UFixed",
                      "nameLocations": [
                        "779:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "779:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "779:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "695:110:52"
            },
            "src": "667:139:52"
          },
          {
            "anonymous": false,
            "eventSelector": "ccfbe413ba62ff5ec59c9423134293d4731d2f2b29b72ed562c3846f2c4954e3",
            "id": 6649,
            "name": "LogDefaultRewardRateSet",
            "nameLocation": "818:23:52",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6641,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "user",
                  "nameLocation": "859:4:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6649,
                  "src": "851:12:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6640,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "851:7:52",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6644,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "oldRewardRate",
                  "nameLocation": "880:13:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6649,
                  "src": "873:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6643,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6642,
                      "name": "UFixed",
                      "nameLocations": [
                        "873:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "873:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "873:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6647,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "newRewardRate",
                  "nameLocation": "910:13:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6649,
                  "src": "903:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6646,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6645,
                      "name": "UFixed",
                      "nameLocations": [
                        "903:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "903:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "903:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "841:88:52"
            },
            "src": "812:118:52"
          },
          {
            "constant": false,
            "id": 6655,
            "mutability": "mutable",
            "name": "_targetRewardRate",
            "nameLocation": "1033:17:52",
            "nodeType": "VariableDeclaration",
            "scope": 6866,
            "src": "977:73:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_userDefinedValueType$_NftId_$3353_$_t_struct$_RewardInfo_$6626_storage_$",
              "typeString": "mapping(NftId => struct RewardHelper.RewardInfo)"
            },
            "typeName": {
              "id": 6654,
              "keyName": "target",
              "keyNameLocation": "991:6:52",
              "keyType": {
                "id": 6651,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 6650,
                  "name": "NftId",
                  "nameLocations": [
                    "985:5:52"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 3353,
                  "src": "985:5:52"
                },
                "referencedDeclaration": 3353,
                "src": "985:5:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                  "typeString": "NftId"
                }
              },
              "nodeType": "Mapping",
              "src": "977:46:52",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_userDefinedValueType$_NftId_$3353_$_t_struct$_RewardInfo_$6626_storage_$",
                "typeString": "mapping(NftId => struct RewardHelper.RewardInfo)"
              },
              "valueName": "rewardRate",
              "valueNameLocation": "1012:10:52",
              "valueType": {
                "id": 6653,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 6652,
                  "name": "RewardInfo",
                  "nameLocations": [
                    "1001:10:52"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 6626,
                  "src": "1001:10:52"
                },
                "referencedDeclaration": 6626,
                "src": "1001:10:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                  "typeString": "struct RewardHelper.RewardInfo"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 6658,
            "mutability": "mutable",
            "name": "_rewardRate",
            "nameLocation": "1106:11:52",
            "nodeType": "VariableDeclaration",
            "scope": 6866,
            "src": "1090:27:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
              "typeString": "UFixed"
            },
            "typeName": {
              "id": 6657,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 6656,
                "name": "UFixed",
                "nameLocations": [
                  "1090:6:52"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 5099,
                "src": "1090:6:52"
              },
              "referencedDeclaration": 5099,
              "src": "1090:6:52",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                "typeString": "UFixed"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 6661,
            "mutability": "mutable",
            "name": "_rewardRateMax",
            "nameLocation": "1139:14:52",
            "nodeType": "VariableDeclaration",
            "scope": 6866,
            "src": "1123:30:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
              "typeString": "UFixed"
            },
            "typeName": {
              "id": 6660,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 6659,
                "name": "UFixed",
                "nameLocations": [
                  "1123:6:52"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 5099,
                "src": "1123:6:52"
              },
              "referencedDeclaration": 5099,
              "src": "1123:6:52",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                "typeString": "UFixed"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6673,
              "nodeType": "Block",
              "src": "1216:82:52",
              "statements": [
                {
                  "expression": {
                    "id": 6671,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6666,
                      "name": "_rewardRateMax",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6661,
                      "src": "1226:14:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6668,
                          "name": "MAX_REWARD_RATE_VALUE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6609,
                          "src": "1248:21:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 6669,
                          "name": "MAX_REWARD_RATE_EXP",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6613,
                          "src": "1271:19:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int8",
                            "typeString": "int8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_int8",
                            "typeString": "int8"
                          }
                        ],
                        "id": 6667,
                        "name": "itof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          5465,
                          5510
                        ],
                        "referencedDeclaration": 5510,
                        "src": "1243:4:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_int8_$returns$_t_userDefinedValueType$_UFixed_$5099_$",
                          "typeString": "function (uint256,int8) pure returns (UFixed)"
                        }
                      },
                      "id": 6670,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1243:48:52",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "src": "1226:65:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "id": 6672,
                  "nodeType": "ExpressionStatement",
                  "src": "1226:65:52"
                }
              ]
            },
            "id": 6674,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [],
                "id": 6664,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 6663,
                  "name": "Ownable",
                  "nameLocations": [
                    "1206:7:52"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 12623,
                  "src": "1206:7:52"
                },
                "nodeType": "ModifierInvocation",
                "src": "1206:9:52"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6662,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1203:2:52"
            },
            "returnParameters": {
              "id": 6665,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1216:0:52"
            },
            "scope": 6866,
            "src": "1192:106:52",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6705,
              "nodeType": "Block",
              "src": "1389:256:52",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        },
                        "function": 5330,
                        "id": 6685,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 6683,
                          "name": "newRewardRate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6677,
                          "src": "1407:13:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "id": 6684,
                          "name": "_rewardRateMax",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6661,
                          "src": "1424:14:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          }
                        },
                        "src": "1407:31:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a5252482d3031303a5245574152445f455843454544535f4d41585f56414c5545",
                        "id": 6686,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1439:40:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d50d0aa581018140e3878f551791fbf3a5e5bcca5553cb5f506444324029cde6",
                          "typeString": "literal_string \"ERROR:RRH-010:REWARD_EXCEEDS_MAX_VALUE\""
                        },
                        "value": "ERROR:RRH-010:REWARD_EXCEEDS_MAX_VALUE"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d50d0aa581018140e3878f551791fbf3a5e5bcca5553cb5f506444324029cde6",
                          "typeString": "literal_string \"ERROR:RRH-010:REWARD_EXCEEDS_MAX_VALUE\""
                        }
                      ],
                      "id": 6682,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1399:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1399:81:52",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6688,
                  "nodeType": "ExpressionStatement",
                  "src": "1399:81:52"
                },
                {
                  "assignments": [
                    6691
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6691,
                      "mutability": "mutable",
                      "name": "oldRewardRate",
                      "nameLocation": "1498:13:52",
                      "nodeType": "VariableDeclaration",
                      "scope": 6705,
                      "src": "1491:20:52",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      },
                      "typeName": {
                        "id": 6690,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6689,
                          "name": "UFixed",
                          "nameLocations": [
                            "1491:6:52"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5099,
                          "src": "1491:6:52"
                        },
                        "referencedDeclaration": 5099,
                        "src": "1491:6:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6693,
                  "initialValue": {
                    "id": 6692,
                    "name": "_rewardRate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6658,
                    "src": "1514:11:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1491:34:52"
                },
                {
                  "expression": {
                    "id": 6696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6694,
                      "name": "_rewardRate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6658,
                      "src": "1535:11:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 6695,
                      "name": "newRewardRate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6677,
                      "src": "1549:13:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "src": "1535:27:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "id": 6697,
                  "nodeType": "ExpressionStatement",
                  "src": "1535:27:52"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6699,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12551,
                          "src": "1602:5:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 6700,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1602:7:52",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6701,
                        "name": "oldRewardRate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6691,
                        "src": "1611:13:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      },
                      {
                        "id": 6702,
                        "name": "_rewardRate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6658,
                        "src": "1626:11:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      ],
                      "id": 6698,
                      "name": "LogDefaultRewardRateSet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6649,
                      "src": "1578:23:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_UFixed_$5099_$_t_userDefinedValueType$_UFixed_$5099_$returns$__$",
                        "typeString": "function (address,UFixed,UFixed)"
                      }
                    },
                    "id": 6703,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1578:60:52",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6704,
                  "nodeType": "EmitStatement",
                  "src": "1573:65:52"
                }
              ]
            },
            "functionSelector": "9e447fc6",
            "id": 6706,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6680,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6679,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "1375:9:52"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 12542,
                  "src": "1375:9:52"
                },
                "nodeType": "ModifierInvocation",
                "src": "1375:9:52"
              }
            ],
            "name": "setRewardRate",
            "nameLocation": "1314:13:52",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6678,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6677,
                  "mutability": "mutable",
                  "name": "newRewardRate",
                  "nameLocation": "1335:13:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6706,
                  "src": "1328:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6676,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6675,
                      "name": "UFixed",
                      "nameLocations": [
                        "1328:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "1328:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "1328:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1327:22:52"
            },
            "returnParameters": {
              "id": 6681,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1389:0:52"
            },
            "scope": 6866,
            "src": "1305:340:52",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6776,
              "nodeType": "Block",
              "src": "1756:584:52",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        },
                        "function": 5330,
                        "id": 6720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 6718,
                          "name": "newRewardRate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6712,
                          "src": "1774:13:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "id": 6719,
                          "name": "_rewardRateMax",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6661,
                          "src": "1791:14:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          }
                        },
                        "src": "1774:31:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a5252482d3032303a5245574152445f455843454544535f4d41585f56414c5545",
                        "id": 6721,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1806:40:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dc36d565ea40b58d853d6244621b2e3c8a45dd13b9e8d912f38c34fd1224932f",
                          "typeString": "literal_string \"ERROR:RRH-020:REWARD_EXCEEDS_MAX_VALUE\""
                        },
                        "value": "ERROR:RRH-020:REWARD_EXCEEDS_MAX_VALUE"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dc36d565ea40b58d853d6244621b2e3c8a45dd13b9e8d912f38c34fd1224932f",
                          "typeString": "literal_string \"ERROR:RRH-020:REWARD_EXCEEDS_MAX_VALUE\""
                        }
                      ],
                      "id": 6717,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1766:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6722,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1766:81:52",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6723,
                  "nodeType": "ExpressionStatement",
                  "src": "1766:81:52"
                },
                {
                  "assignments": [
                    6726
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6726,
                      "mutability": "mutable",
                      "name": "info",
                      "nameLocation": "1877:4:52",
                      "nodeType": "VariableDeclaration",
                      "scope": 6776,
                      "src": "1858:23:52",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                        "typeString": "struct RewardHelper.RewardInfo"
                      },
                      "typeName": {
                        "id": 6725,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6724,
                          "name": "RewardInfo",
                          "nameLocations": [
                            "1858:10:52"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 6626,
                          "src": "1858:10:52"
                        },
                        "referencedDeclaration": 6626,
                        "src": "1858:10:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                          "typeString": "struct RewardHelper.RewardInfo"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6730,
                  "initialValue": {
                    "baseExpression": {
                      "id": 6727,
                      "name": "_targetRewardRate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6655,
                      "src": "1884:17:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_userDefinedValueType$_NftId_$3353_$_t_struct$_RewardInfo_$6626_storage_$",
                        "typeString": "mapping(NftId => struct RewardHelper.RewardInfo storage ref)"
                      }
                    },
                    "id": 6729,
                    "indexExpression": {
                      "id": 6728,
                      "name": "target",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6709,
                      "src": "1902:6:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                        "typeString": "NftId"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1884:25:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RewardInfo_$6626_storage",
                      "typeString": "struct RewardHelper.RewardInfo storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1858:51:52"
                },
                {
                  "assignments": [
                    6733
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6733,
                      "mutability": "mutable",
                      "name": "oldRewardRate",
                      "nameLocation": "1926:13:52",
                      "nodeType": "VariableDeclaration",
                      "scope": 6776,
                      "src": "1919:20:52",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      },
                      "typeName": {
                        "id": 6732,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6731,
                          "name": "UFixed",
                          "nameLocations": [
                            "1919:6:52"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5099,
                          "src": "1919:6:52"
                        },
                        "referencedDeclaration": 5099,
                        "src": "1919:6:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6736,
                  "initialValue": {
                    "expression": {
                      "id": 6734,
                      "name": "info",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6726,
                      "src": "1942:4:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                        "typeString": "struct RewardHelper.RewardInfo storage pointer"
                      }
                    },
                    "id": 6735,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "1947:10:52",
                    "memberName": "rewardRate",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 6619,
                    "src": "1942:15:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1919:38:52"
                },
                {
                  "expression": {
                    "id": 6741,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 6737,
                        "name": "info",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6726,
                        "src": "1968:4:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                          "typeString": "struct RewardHelper.RewardInfo storage pointer"
                        }
                      },
                      "id": 6739,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "1973:10:52",
                      "memberName": "rewardRate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6619,
                      "src": "1968:15:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 6740,
                      "name": "newRewardRate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6712,
                      "src": "1986:13:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "src": "1968:31:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "id": 6742,
                  "nodeType": "ExpressionStatement",
                  "src": "1968:31:52"
                },
                {
                  "expression": {
                    "id": 6748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 6743,
                        "name": "info",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6726,
                        "src": "2009:4:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                          "typeString": "struct RewardHelper.RewardInfo storage pointer"
                        }
                      },
                      "id": 6745,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "2014:9:52",
                      "memberName": "updatedAt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6625,
                      "src": "2009:14:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                        "typeString": "Timestamp"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 6746,
                        "name": "blockTimestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4700,
                        "src": "2026:14:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_userDefinedValueType$_Timestamp_$4530_$",
                          "typeString": "function () view returns (Timestamp)"
                        }
                      },
                      "id": 6747,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2026:16:52",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                        "typeString": "Timestamp"
                      }
                    },
                    "src": "2009:33:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                      "typeString": "Timestamp"
                    }
                  },
                  "id": 6749,
                  "nodeType": "ExpressionStatement",
                  "src": "2009:33:52"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                      "typeString": "Timestamp"
                    },
                    "function": 4649,
                    "id": 6754,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 6750,
                        "name": "info",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6726,
                        "src": "2057:4:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                          "typeString": "struct RewardHelper.RewardInfo storage pointer"
                        }
                      },
                      "id": 6751,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2062:9:52",
                      "memberName": "createdAt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6622,
                      "src": "2057:14:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                        "typeString": "Timestamp"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 6752,
                        "name": "zeroTimestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4711,
                        "src": "2075:13:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_userDefinedValueType$_Timestamp_$4530_$",
                          "typeString": "function () pure returns (Timestamp)"
                        }
                      },
                      "id": 6753,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2075:15:52",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                        "typeString": "Timestamp"
                      }
                    },
                    "src": "2057:33:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6767,
                  "nodeType": "IfStatement",
                  "src": "2053:138:52",
                  "trueBody": {
                    "id": 6766,
                    "nodeType": "Block",
                    "src": "2092:99:52",
                    "statements": [
                      {
                        "expression": {
                          "id": 6760,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "id": 6755,
                              "name": "info",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6726,
                              "src": "2106:4:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                                "typeString": "struct RewardHelper.RewardInfo storage pointer"
                              }
                            },
                            "id": 6757,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "2111:9:52",
                            "memberName": "createdAt",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6622,
                            "src": "2106:14:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                              "typeString": "Timestamp"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 6758,
                              "name": "blockTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4700,
                              "src": "2123:14:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_userDefinedValueType$_Timestamp_$4530_$",
                                "typeString": "function () view returns (Timestamp)"
                              }
                            },
                            "id": 6759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2123:16:52",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                              "typeString": "Timestamp"
                            }
                          },
                          "src": "2106:33:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                            "typeString": "Timestamp"
                          }
                        },
                        "id": 6761,
                        "nodeType": "ExpressionStatement",
                        "src": "2106:33:52"
                      },
                      {
                        "expression": {
                          "id": 6764,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 6762,
                            "name": "oldRewardRate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6733,
                            "src": "2153:13:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                              "typeString": "UFixed"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 6763,
                            "name": "_rewardRate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6658,
                            "src": "2169:11:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                              "typeString": "UFixed"
                            }
                          },
                          "src": "2153:27:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          }
                        },
                        "id": 6765,
                        "nodeType": "ExpressionStatement",
                        "src": "2153:27:52"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6769,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12551,
                          "src": "2242:5:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 6770,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2242:7:52",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6771,
                        "name": "target",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6709,
                        "src": "2263:6:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                          "typeString": "NftId"
                        }
                      },
                      {
                        "id": 6772,
                        "name": "oldRewardRate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6733,
                        "src": "2283:13:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      },
                      {
                        "id": 6773,
                        "name": "newRewardRate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6712,
                        "src": "2310:13:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                          "typeString": "NftId"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      ],
                      "id": 6768,
                      "name": "LogTargetRewardRateSet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6639,
                      "src": "2206:22:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_NftId_$3353_$_t_userDefinedValueType$_UFixed_$5099_$_t_userDefinedValueType$_UFixed_$5099_$returns$__$",
                        "typeString": "function (address,NftId,UFixed,UFixed)"
                      }
                    },
                    "id": 6774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2206:127:52",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6775,
                  "nodeType": "EmitStatement",
                  "src": "2201:132:52"
                }
              ]
            },
            "functionSelector": "2fcc650a",
            "id": 6777,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6715,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6714,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "1742:9:52"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 12542,
                  "src": "1742:9:52"
                },
                "nodeType": "ModifierInvocation",
                "src": "1742:9:52"
              }
            ],
            "name": "setTargetRewardRate",
            "nameLocation": "1661:19:52",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6709,
                  "mutability": "mutable",
                  "name": "target",
                  "nameLocation": "1687:6:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6777,
                  "src": "1681:12:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 6708,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6707,
                      "name": "NftId",
                      "nameLocations": [
                        "1681:5:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1681:5:52"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1681:5:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6712,
                  "mutability": "mutable",
                  "name": "newRewardRate",
                  "nameLocation": "1702:13:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6777,
                  "src": "1695:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6711,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6710,
                      "name": "UFixed",
                      "nameLocations": [
                        "1695:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "1695:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "1695:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1680:36:52"
            },
            "returnParameters": {
              "id": 6716,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1756:0:52"
            },
            "scope": 6866,
            "src": "1652:688:52",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6785,
              "nodeType": "Block",
              "src": "2403:38:52",
              "statements": [
                {
                  "expression": {
                    "id": 6783,
                    "name": "_rewardRateMax",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6661,
                    "src": "2420:14:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "functionReturnParameters": 6782,
                  "id": 6784,
                  "nodeType": "Return",
                  "src": "2413:21:52"
                }
              ]
            },
            "functionSelector": "0d40ffc7",
            "id": 6786,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "maxRewardRate",
            "nameLocation": "2356:13:52",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6778,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2369:2:52"
            },
            "returnParameters": {
              "id": 6782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6781,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6786,
                  "src": "2395:6:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6780,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6779,
                      "name": "UFixed",
                      "nameLocations": [
                        "2395:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "2395:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "2395:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2394:8:52"
            },
            "scope": 6866,
            "src": "2347:94:52",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6794,
              "nodeType": "Block",
              "src": "2501:35:52",
              "statements": [
                {
                  "expression": {
                    "id": 6792,
                    "name": "_rewardRate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6658,
                    "src": "2518:11:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "functionReturnParameters": 6791,
                  "id": 6793,
                  "nodeType": "Return",
                  "src": "2511:18:52"
                }
              ]
            },
            "functionSelector": "7b0a47ee",
            "id": 6795,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rewardRate",
            "nameLocation": "2457:10:52",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6787,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2467:2:52"
            },
            "returnParameters": {
              "id": 6791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6790,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6795,
                  "src": "2493:6:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6789,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6788,
                      "name": "UFixed",
                      "nameLocations": [
                        "2493:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "2493:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "2493:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2492:8:52"
            },
            "scope": 6866,
            "src": "2448:88:52",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6823,
              "nodeType": "Block",
              "src": "2644:249:52",
              "statements": [
                {
                  "assignments": [
                    6806
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6806,
                      "mutability": "mutable",
                      "name": "info",
                      "nameLocation": "2672:4:52",
                      "nodeType": "VariableDeclaration",
                      "scope": 6823,
                      "src": "2654:22:52",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RewardInfo_$6626_memory_ptr",
                        "typeString": "struct RewardHelper.RewardInfo"
                      },
                      "typeName": {
                        "id": 6805,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6804,
                          "name": "RewardInfo",
                          "nameLocations": [
                            "2654:10:52"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 6626,
                          "src": "2654:10:52"
                        },
                        "referencedDeclaration": 6626,
                        "src": "2654:10:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RewardInfo_$6626_storage_ptr",
                          "typeString": "struct RewardHelper.RewardInfo"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6810,
                  "initialValue": {
                    "baseExpression": {
                      "id": 6807,
                      "name": "_targetRewardRate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6655,
                      "src": "2679:17:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_userDefinedValueType$_NftId_$3353_$_t_struct$_RewardInfo_$6626_storage_$",
                        "typeString": "mapping(NftId => struct RewardHelper.RewardInfo storage ref)"
                      }
                    },
                    "id": 6809,
                    "indexExpression": {
                      "id": 6808,
                      "name": "target",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6798,
                      "src": "2697:6:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                        "typeString": "NftId"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2679:25:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RewardInfo_$6626_storage",
                      "typeString": "struct RewardHelper.RewardInfo storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2654:50:52"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                      "typeString": "Timestamp"
                    },
                    "function": 4561,
                    "id": 6815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 6811,
                        "name": "info",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6806,
                        "src": "2719:4:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RewardInfo_$6626_memory_ptr",
                          "typeString": "struct RewardHelper.RewardInfo memory"
                        }
                      },
                      "id": 6812,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2724:9:52",
                      "memberName": "createdAt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6622,
                      "src": "2719:14:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                        "typeString": "Timestamp"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 6813,
                        "name": "zeroTimestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4711,
                        "src": "2736:13:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_userDefinedValueType$_Timestamp_$4530_$",
                          "typeString": "function () pure returns (Timestamp)"
                        }
                      },
                      "id": 6814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2736:15:52",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                        "typeString": "Timestamp"
                      }
                    },
                    "src": "2719:32:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6820,
                  "nodeType": "IfStatement",
                  "src": "2715:85:52",
                  "trueBody": {
                    "id": 6819,
                    "nodeType": "Block",
                    "src": "2753:47:52",
                    "statements": [
                      {
                        "expression": {
                          "expression": {
                            "id": 6816,
                            "name": "info",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6806,
                            "src": "2774:4:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RewardInfo_$6626_memory_ptr",
                              "typeString": "struct RewardHelper.RewardInfo memory"
                            }
                          },
                          "id": 6817,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2779:10:52",
                          "memberName": "rewardRate",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6619,
                          "src": "2774:15:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          }
                        },
                        "functionReturnParameters": 6803,
                        "id": 6818,
                        "nodeType": "Return",
                        "src": "2767:22:52"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 6821,
                    "name": "_rewardRate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6658,
                    "src": "2875:11:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "functionReturnParameters": 6803,
                  "id": 6822,
                  "nodeType": "Return",
                  "src": "2868:18:52"
                }
              ]
            },
            "functionSelector": "12b9a5c9",
            "id": 6824,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTargetRewardRate",
            "nameLocation": "2552:19:52",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6798,
                  "mutability": "mutable",
                  "name": "target",
                  "nameLocation": "2578:6:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6824,
                  "src": "2572:12:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 6797,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6796,
                      "name": "NftId",
                      "nameLocations": [
                        "2572:5:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2572:5:52"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2572:5:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2571:14:52"
            },
            "returnParameters": {
              "id": 6803,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6802,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6824,
                  "src": "2632:6:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6801,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6800,
                      "name": "UFixed",
                      "nameLocations": [
                        "2632:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "2632:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "2632:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2631:8:52"
            },
            "scope": 6866,
            "src": "2543:350:52",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6864,
              "nodeType": "Block",
              "src": "3045:188:52",
              "statements": [
                {
                  "assignments": [
                    6838
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6838,
                      "mutability": "mutable",
                      "name": "yearFraction",
                      "nameLocation": "3062:12:52",
                      "nodeType": "VariableDeclaration",
                      "scope": 6864,
                      "src": "3055:19:52",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      },
                      "typeName": {
                        "id": 6837,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6836,
                          "name": "UFixed",
                          "nameLocations": [
                            "3055:6:52"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5099,
                          "src": "3055:6:52"
                        },
                        "referencedDeclaration": 5099,
                        "src": "3055:6:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6846,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    },
                    "function": 5242,
                    "id": 6845,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 6840,
                          "name": "duration",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6828,
                          "src": "3082:8:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 6839,
                        "name": "itof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          5465,
                          5510
                        ],
                        "referencedDeclaration": 5465,
                        "src": "3077:4:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_userDefinedValueType$_UFixed_$5099_$",
                          "typeString": "function (uint256) pure returns (UFixed)"
                        }
                      },
                      "id": 6841,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3077:14:52",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 6843,
                          "name": "YEAR_DURATION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6616,
                          "src": "3099:13:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 6842,
                        "name": "itof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          5465,
                          5510
                        ],
                        "referencedDeclaration": 5465,
                        "src": "3094:4:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_userDefinedValueType$_UFixed_$5099_$",
                          "typeString": "function (uint256) pure returns (UFixed)"
                        }
                      },
                      "id": 6844,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3094:19:52",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "src": "3077:36:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3055:58:52"
                },
                {
                  "assignments": [
                    6849
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6849,
                      "mutability": "mutable",
                      "name": "rewardDuration",
                      "nameLocation": "3130:14:52",
                      "nodeType": "VariableDeclaration",
                      "scope": 6864,
                      "src": "3123:21:52",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      },
                      "typeName": {
                        "id": 6848,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6847,
                          "name": "UFixed",
                          "nameLocations": [
                            "3123:6:52"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5099,
                          "src": "3123:6:52"
                        },
                        "referencedDeclaration": 5099,
                        "src": "3123:6:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                          "typeString": "UFixed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6853,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    },
                    "function": 5201,
                    "id": 6852,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6850,
                      "name": "rate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6831,
                      "src": "3147:4:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "*",
                    "rightExpression": {
                      "id": 6851,
                      "name": "yearFraction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6838,
                      "src": "3154:12:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                        "typeString": "UFixed"
                      }
                    },
                    "src": "3147:19:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3123:43:52"
                },
                {
                  "expression": {
                    "id": 6862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6854,
                      "name": "rewardAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6834,
                      "src": "3176:12:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          },
                          "function": 5201,
                          "id": 6860,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 6857,
                                "name": "amount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6826,
                                "src": "3201:6:52",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6856,
                              "name": "itof",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                5465,
                                5510
                              ],
                              "referencedDeclaration": 5465,
                              "src": "3196:4:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_userDefinedValueType$_UFixed_$5099_$",
                                "typeString": "function (uint256) pure returns (UFixed)"
                              }
                            },
                            "id": 6858,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3196:12:52",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                              "typeString": "UFixed"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "id": 6859,
                            "name": "rewardDuration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6849,
                            "src": "3211:14:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                              "typeString": "UFixed"
                            }
                          },
                          "src": "3196:29:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                            "typeString": "UFixed"
                          }
                        ],
                        "id": 6855,
                        "name": "ftoi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          5524,
                          5590
                        ],
                        "referencedDeclaration": 5524,
                        "src": "3191:4:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_UFixed_$5099_$returns$_t_uint256_$",
                          "typeString": "function (UFixed) pure returns (uint256)"
                        }
                      },
                      "id": 6861,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3191:35:52",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3176:50:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6863,
                  "nodeType": "ExpressionStatement",
                  "src": "3176:50:52"
                }
              ]
            },
            "functionSelector": "745052c0",
            "id": 6865,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "calculateRewards",
            "nameLocation": "2909:16:52",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6832,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6826,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "2934:6:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "2926:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6825,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2926:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6828,
                  "mutability": "mutable",
                  "name": "duration",
                  "nameLocation": "2950:8:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "2942:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6827,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2942:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6831,
                  "mutability": "mutable",
                  "name": "rate",
                  "nameLocation": "2967:4:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "2960:11:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                    "typeString": "UFixed"
                  },
                  "typeName": {
                    "id": 6830,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6829,
                      "name": "UFixed",
                      "nameLocations": [
                        "2960:6:52"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5099,
                      "src": "2960:6:52"
                    },
                    "referencedDeclaration": 5099,
                    "src": "2960:6:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_UFixed_$5099",
                      "typeString": "UFixed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2925:47:52"
            },
            "returnParameters": {
              "id": 6835,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6834,
                  "mutability": "mutable",
                  "name": "rewardAmount",
                  "nameLocation": "3027:12:52",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "3019:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6833,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3019:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3018:22:52"
            },
            "scope": 6866,
            "src": "2900:333:52",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 6867,
        "src": "329:2906:52",
        "usedErrors": []
      }
    ],
    "src": "39:3197:52"
  },
  "bytecode": "60806040523480156200001157600080fd5b506200001d3362000036565b6200002d61014d60021962000086565b60035562000319565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008062000096836012620001a3565b60000b1215620000ed5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031303a4558504f4e454e545f544f4f5f534d414c4c0060448201526064015b60405180910390fd5b620000fb60126002620001c7565b60000b6200010b836012620001a3565b60000b13156200015e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031313a4558504f4e454e545f544f4f5f4c41524745006044820152606401620000e4565b6200016b826012620001a3565b6200017890600a620002ee565b620001849084620002ff565b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600081810b9083900b01607f8113607f19821217156200018757620001876200018d565b60008260000b8260000b028060000b9150808214620001ea57620001ea6200018d565b5092915050565b600181815b80851115620002325781600019048211156200021657620002166200018d565b808516156200022457918102915b93841c9390800290620001f6565b509250929050565b6000826200024b5750600162000187565b816200025a5750600062000187565b81600181146200027357600281146200027e576200029e565b600191505062000187565b60ff8411156200029257620002926200018d565b50506001821b62000187565b5060208310610133831016604e8410600b8410161715620002c3575081810a62000187565b620002cf8383620001f1565b8060001904821115620002e657620002e66200018d565b029392505050565b60006200018460ff8416836200023a565b80820281158282048414176200018757620001876200018d565b610d8780620003296000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637b0a47ee116100b8578063b38ea1751161007c578063b38ea17514610234578063d05b04521461023d578063dd45daa114610250578063eb646d7114610263578063f2fde38b1461026b578063f30ed5981461027e57600080fd5b80637b0a47ee146101d85780638da5cb5b146101e05780638f24f601146101fb57806392ae8ce01461020e5780639e447fc61461022157600080fd5b80632fcc650a116100ff5780632fcc650a14610198578063313ce567146101ad578063715018a6146101b4578063745052c0146101bc57806378a987ba146101cf57600080fd5b8063059f8b161461013c5780630d40ffc7146101575780630dc0ba721461015f57806312b9a5c91461016a5780631a12cd471461017d575b600080fd5b610144610293565b6040519081526020015b60405180910390f35b600354610144565b6101446301e1338081565b610144610178366004610a42565b6102a2565b610185601281565b60405160009190910b815260200161014e565b6101ab6101a6366004610a5d565b610300565b005b6012610144565b6101ab610470565b6101446101ca366004610a87565b610484565b61014461014d81565b600254610144565b6000546040516001600160a01b03909116815260200161014e565b610144610209366004610ab3565b6104d4565b61014461021c366004610ae7565b61057a565b6101ab61022f366004610ae7565b610592565b61018560021981565b61014461024b366004610ae7565b610669565b61014461025e366004610b00565b610676565b610144610767565b6101ab610279366004610b2b565b61077f565b610286600281565b60405161014e9190610b6a565b61029f6012600a610c8c565b81565b6001600160601b038116600090815260016020818152604080842081516060810183528154815293015464ffffffffff808216938501849052650100000000009091041690830152156102f6575192915050565b5050600254919050565b6103086107f8565b61031481600354101590565b6103745760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5252482d3032303a5245574152445f455843454544535f4d41586044820152655f56414c554560d01b60648201526084015b60405180910390fd5b6001600160601b038216600090815260016020526040902080548282554260018301805464ffffffffff928316650100000000000269ffffffffff000000000019821681179092556103dd929182169116176103ce600090565b64ffffffffff90811691161490565b15610400575060018101805464ffffffffff19164264ffffffffff161790556002545b7fb3dadab54c4cf13d74f841f035ba6d7da492144b56ca32d1d0d340aeb2323fa76104336000546001600160a01b031690565b604080516001600160a01b0390921682526001600160601b038716602083015281018390526060810185905260800160405180910390a150505050565b6104786107f8565b6104826000610852565b565b6000806104a56104938561057a565b6104a06301e1338061057a565b6108a2565b905060006104b38483610906565b90506104ca61024b6104c48861057a565b83610906565b9695505050505050565b600060028260028111156104ea576104ea610b54565b036105305761052960026105006012600a610c8c565b61050a9190610cae565b6105149085610cd0565b60016105226012600a610c8c565b600061091b565b9050610574565b600082600281111561054457610544610b54565b0361055b576105298360016105226012600a610c8c565b61052983600161056d6012600a610c8c565b600161091b565b92915050565b60006105886012600a610c8c565b6105749083610ce3565b61059a6107f8565b6105a681600354101590565b6106015760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5252482d3031303a5245574152445f455843454544535f4d41586044820152655f56414c554560d01b606482015260840161036b565b60028054908290557fccfbe413ba62ff5ec59c9423134293d4731d2f2b29b72ed562c3846f2c4954e361063c6000546001600160a01b031690565b600254604080516001600160a01b0390931683526020830185905282015260600160405180910390a15050565b60006105748260026104d4565b600080610684836012610cfa565b60000b12156106d55760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031303a4558504f4e454e545f544f4f5f534d414c4c00604482015260640161036b565b6106e160126002610d1b565b60000b6106ef836012610cfa565b60000b13156107405760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031313a4558504f4e454e545f544f4f5f4c4152474500604482015260640161036b565b61074b826012610cfa565b61075690600a610d42565b6107609084610ce3565b9392505050565b60026107756012600a610c8c565b61029f9190610cae565b6107876107f8565b6001600160a01b0381166107ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161036b565b6107f581610852565b50565b6000546001600160a01b031633146104825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161036b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082116108f35760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a55464d2d3032303a44495649534f525f5a45524f000000000000604482015260640161036b565b61076083670de0b6b3a764000084610978565b60006107608383670de0b6b3a7640000610978565b600080610929868686610978565b9050600183600281111561093f5761093f610b54565b14801561095c57506000848061095757610957610c98565b868809115b1561096f5761096c600182610cd0565b90505b95945050505050565b60008080600019858709858702925082811083820303915050806000036109b2578382816109a8576109a8610c98565b0492505050610760565b8084116109be57600080fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b80356001600160601b0381168114610a3d57600080fd5b919050565b600060208284031215610a5457600080fd5b61076082610a26565b60008060408385031215610a7057600080fd5b610a7983610a26565b946020939093013593505050565b600080600060608486031215610a9c57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215610ac657600080fd5b82359150602083013560038110610adc57600080fd5b809150509250929050565b600060208284031215610af957600080fd5b5035919050565b60008060408385031215610b1357600080fd5b8235915060208301358060000b8114610adc57600080fd5b600060208284031215610b3d57600080fd5b81356001600160a01b038116811461076057600080fd5b634e487b7160e01b600052602160045260246000fd5b6020810160038310610b8c57634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610be3578160001904821115610bc957610bc9610b92565b80851615610bd657918102915b93841c9390800290610bad565b509250929050565b600082610bfa57506001610574565b81610c0757506000610574565b8160018114610c1d5760028114610c2757610c43565b6001915050610574565b60ff841115610c3857610c38610b92565b50506001821b610574565b5060208310610133831016604e8410600b8410161715610c66575081810a610574565b610c708383610ba8565b8060001904821115610c8457610c84610b92565b029392505050565b60006107608383610beb565b634e487b7160e01b600052601260045260246000fd5b600082610ccb57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561057457610574610b92565b808202811582820484141761057457610574610b92565b600081810b9083900b01607f8113607f198212171561057457610574610b92565b60008260000b8260000b028060000b9150808214610d3b57610d3b610b92565b5092915050565b600061076060ff841683610beb56fea26469706673582212209c1327af42132ab04afc24cce153986a8916a50a4e8ba8c96ba357839423971a64736f6c63430008130033",
  "bytecodeSha1": "eb259ea6c434f9de651bfd11195eb7c30f6208ee",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.19+commit.7dd6d404"
  },
  "contractName": "RewardHelper",
  "coverageMap": {
    "branches": {
      "23": {},
      "34": {},
      "43": {},
      "47": {
        "UFixedType.ftoi": {
          "42": [
            3172,
            3199,
            false
          ],
          "43": [
            3324,
            3349,
            false
          ]
        },
        "UFixedType.itof": {
          "44": [
            2729,
            2743,
            true
          ],
          "45": [
            2797,
            2817,
            true
          ]
        }
      },
      "52": {
        "RewardHelper.setRewardRate": {
          "39": [
            1407,
            1438,
            true
          ]
        },
        "RewardHelper.setTargetRewardRate": {
          "37": [
            1774,
            1805,
            true
          ],
          "38": [
            2057,
            2090,
            false
          ]
        }
      },
      "6": {
        "Ownable._checkOwner": {
          "41": [
            1422,
            1445,
            true
          ]
        },
        "Ownable.transferOwnership": {
          "40": [
            2169,
            2191,
            true
          ]
        }
      }
    },
    "statements": {
      "23": {
        "Context._msgSender": {
          "30": [
            712,
            729
          ]
        }
      },
      "34": {},
      "43": {
        "blockTimestamp": {
          "9": [
            1875,
            1910
          ]
        },
        "eqTimestamp": {
          "11": [
            1491,
            1540
          ]
        },
        "gtTimestamp": {
          "3": [
            1005,
            1053
          ]
        }
      },
      "47": {
        "UFixedType.ftoi": {
          "17": [
            3215,
            3304
          ],
          "18": [
            3365,
            3436
          ],
          "19": [
            3467,
            3536
          ],
          "24": [
            3014,
            3046
          ]
        },
        "UFixedType.itof": {
          "20": [
            2573,
            2607
          ],
          "25": [
            2721,
            2779
          ],
          "26": [
            2789,
            2853
          ],
          "27": [
            2864,
            2910
          ]
        },
        "divUFixed": {
          "34": [
            891,
            950
          ],
          "35": [
            957,
            1081
          ]
        },
        "lteUFixed": {
          "7": [
            1538,
            1581
          ]
        },
        "mulUFixed": {
          "36": [
            743,
            820
          ]
        }
      },
      "52": {
        "RewardHelper.calculateRewards": {
          "16": [
            3176,
            3226
          ]
        },
        "RewardHelper.getTargetRewardRate": {
          "4": [
            2767,
            2789
          ],
          "5": [
            2868,
            2886
          ]
        },
        "RewardHelper.maxRewardRate": {
          "0": [
            2413,
            2434
          ]
        },
        "RewardHelper.rewardRate": {
          "1": [
            2511,
            2529
          ]
        },
        "RewardHelper.setRewardRate": {
          "21": [
            1399,
            1480
          ],
          "22": [
            1535,
            1562
          ],
          "23": [
            1573,
            1638
          ]
        },
        "RewardHelper.setTargetRewardRate": {
          "6": [
            1766,
            1847
          ],
          "8": [
            1968,
            1999
          ],
          "10": [
            2009,
            2042
          ],
          "12": [
            2106,
            2139
          ],
          "13": [
            2153,
            2180
          ],
          "14": [
            2201,
            2333
          ]
        }
      },
      "6": {
        "Ownable._checkOwner": {
          "31": [
            1414,
            1482
          ]
        },
        "Ownable._transferOwnership": {
          "32": [
            2541,
            2558
          ],
          "33": [
            2568,
            2613
          ]
        },
        "Ownable.owner": {
          "2": [
            1266,
            1279
          ]
        },
        "Ownable.renounceOwnership": {
          "15": [
            1895,
            1925
          ]
        },
        "Ownable.transferOwnership": {
          "28": [
            2161,
            2234
          ],
          "29": [
            2244,
            2272
          ]
        }
      }
    }
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.8.2/Context",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/Ownable",
    "UFixedType"
  ],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106101375760003560e01c80637b0a47ee116100b8578063b38ea1751161007c578063b38ea17514610234578063d05b04521461023d578063dd45daa114610250578063eb646d7114610263578063f2fde38b1461026b578063f30ed5981461027e57600080fd5b80637b0a47ee146101d85780638da5cb5b146101e05780638f24f601146101fb57806392ae8ce01461020e5780639e447fc61461022157600080fd5b80632fcc650a116100ff5780632fcc650a14610198578063313ce567146101ad578063715018a6146101b4578063745052c0146101bc57806378a987ba146101cf57600080fd5b8063059f8b161461013c5780630d40ffc7146101575780630dc0ba721461015f57806312b9a5c91461016a5780631a12cd471461017d575b600080fd5b610144610293565b6040519081526020015b60405180910390f35b600354610144565b6101446301e1338081565b610144610178366004610a42565b6102a2565b610185601281565b60405160009190910b815260200161014e565b6101ab6101a6366004610a5d565b610300565b005b6012610144565b6101ab610470565b6101446101ca366004610a87565b610484565b61014461014d81565b600254610144565b6000546040516001600160a01b03909116815260200161014e565b610144610209366004610ab3565b6104d4565b61014461021c366004610ae7565b61057a565b6101ab61022f366004610ae7565b610592565b61018560021981565b61014461024b366004610ae7565b610669565b61014461025e366004610b00565b610676565b610144610767565b6101ab610279366004610b2b565b61077f565b610286600281565b60405161014e9190610b6a565b61029f6012600a610c8c565b81565b6001600160601b038116600090815260016020818152604080842081516060810183528154815293015464ffffffffff808216938501849052650100000000009091041690830152156102f6575192915050565b5050600254919050565b6103086107f8565b61031481600354101590565b6103745760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5252482d3032303a5245574152445f455843454544535f4d41586044820152655f56414c554560d01b60648201526084015b60405180910390fd5b6001600160601b038216600090815260016020526040902080548282554260018301805464ffffffffff928316650100000000000269ffffffffff000000000019821681179092556103dd929182169116176103ce600090565b64ffffffffff90811691161490565b15610400575060018101805464ffffffffff19164264ffffffffff161790556002545b7fb3dadab54c4cf13d74f841f035ba6d7da492144b56ca32d1d0d340aeb2323fa76104336000546001600160a01b031690565b604080516001600160a01b0390921682526001600160601b038716602083015281018390526060810185905260800160405180910390a150505050565b6104786107f8565b6104826000610852565b565b6000806104a56104938561057a565b6104a06301e1338061057a565b6108a2565b905060006104b38483610906565b90506104ca61024b6104c48861057a565b83610906565b9695505050505050565b600060028260028111156104ea576104ea610b54565b036105305761052960026105006012600a610c8c565b61050a9190610cae565b6105149085610cd0565b60016105226012600a610c8c565b600061091b565b9050610574565b600082600281111561054457610544610b54565b0361055b576105298360016105226012600a610c8c565b61052983600161056d6012600a610c8c565b600161091b565b92915050565b60006105886012600a610c8c565b6105749083610ce3565b61059a6107f8565b6105a681600354101590565b6106015760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5252482d3031303a5245574152445f455843454544535f4d41586044820152655f56414c554560d01b606482015260840161036b565b60028054908290557fccfbe413ba62ff5ec59c9423134293d4731d2f2b29b72ed562c3846f2c4954e361063c6000546001600160a01b031690565b600254604080516001600160a01b0390931683526020830185905282015260600160405180910390a15050565b60006105748260026104d4565b600080610684836012610cfa565b60000b12156106d55760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031303a4558504f4e454e545f544f4f5f534d414c4c00604482015260640161036b565b6106e160126002610d1b565b60000b6106ef836012610cfa565b60000b13156107405760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031313a4558504f4e454e545f544f4f5f4c4152474500604482015260640161036b565b61074b826012610cfa565b61075690600a610d42565b6107609084610ce3565b9392505050565b60026107756012600a610c8c565b61029f9190610cae565b6107876107f8565b6001600160a01b0381166107ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161036b565b6107f581610852565b50565b6000546001600160a01b031633146104825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161036b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082116108f35760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a55464d2d3032303a44495649534f525f5a45524f000000000000604482015260640161036b565b61076083670de0b6b3a764000084610978565b60006107608383670de0b6b3a7640000610978565b600080610929868686610978565b9050600183600281111561093f5761093f610b54565b14801561095c57506000848061095757610957610c98565b868809115b1561096f5761096c600182610cd0565b90505b95945050505050565b60008080600019858709858702925082811083820303915050806000036109b2578382816109a8576109a8610c98565b0492505050610760565b8084116109be57600080fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b80356001600160601b0381168114610a3d57600080fd5b919050565b600060208284031215610a5457600080fd5b61076082610a26565b60008060408385031215610a7057600080fd5b610a7983610a26565b946020939093013593505050565b600080600060608486031215610a9c57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215610ac657600080fd5b82359150602083013560038110610adc57600080fd5b809150509250929050565b600060208284031215610af957600080fd5b5035919050565b60008060408385031215610b1357600080fd5b8235915060208301358060000b8114610adc57600080fd5b600060208284031215610b3d57600080fd5b81356001600160a01b038116811461076057600080fd5b634e487b7160e01b600052602160045260246000fd5b6020810160038310610b8c57634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610be3578160001904821115610bc957610bc9610b92565b80851615610bd657918102915b93841c9390800290610bad565b509250929050565b600082610bfa57506001610574565b81610c0757506000610574565b8160018114610c1d5760028114610c2757610c43565b6001915050610574565b60ff841115610c3857610c38610b92565b50506001821b610574565b5060208310610133831016604e8410600b8410161715610c66575081810a610574565b610c708383610ba8565b8060001904821115610c8457610c84610b92565b029392505050565b60006107608383610beb565b634e487b7160e01b600052601260045260246000fd5b600082610ccb57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561057457610574610b92565b808202811582820484141761057457610574610b92565b600081810b9083900b01607f8113607f198212171561057457610574610b92565b60008260000b8260000b028060000b9150808214610d3b57610d3b610b92565b5092915050565b600061076060ff841683610beb56fea26469706673582212209c1327af42132ab04afc24cce153986a8916a50a4e8ba8c96ba357839423971a64736f6c63430008130033",
  "deployedSourceMap": "329:2906:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2191:63:47;;;:::i;:::-;;;160:25:67;;;148:2;133:18;2191:63:47;;;;;;;;2347:94:52;2420:14;;2347:94;;496:48;;536:8;496:48;;2543:350;;;;;;:::i;:::-;;:::i;2156:29:47:-;;2183:2;2156:29;;;;;931:4:67;1003:21;;;;985:40;;973:2;958:18;2156:29:47;845:186:67;1652:688:52;;;;;;:::i;:::-;;:::i;:::-;;2393:83:47;2183:2;2393:83;;1831:101:6;;;:::i;2900:333:52:-;;;;;;:::i;:::-;;:::i;388:51::-;;436:3;388:51;;2448:88;2518:11;;2448:88;;1201:85:6;1247:7;1273:6;1201:85;;-1:-1:-1;;;;;1273:6:6;;;1861:51:67;;1849:2;1834:18;1201:85:6;1715:203:67;3059:494:47;;;;;;:::i;:::-;;:::i;2482:132::-;;;;;;:::i;:::-;;:::i;1305:340:52:-;;;;;;:::i;:::-;;:::i;445:45::-;;-1:-1:-1;;445:45:52;;2923:130:47;;;;;;:::i;:::-;;:::i;2620:297::-;;;;;;:::i;:::-;;:::i;2260:56::-;;;:::i;2081:198:6:-;;;;;;:::i;:::-;;:::i;2327:59:47:-;;2371:15;2327:59;;;;;;;;;:::i;2191:63::-;2228:26;2183:2;2228;:26;:::i;:::-;2191:63;:::o;2543:350:52:-;-1:-1:-1;;;;;2679:25:52;;2632:6;2679:25;;;:17;:25;;;;;;;;2654:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1012:41:43;2715:85:52;;2774:15;;2543:350;-1:-1:-1;;2543:350:52:o;2715:85::-;-1:-1:-1;;2875:11:52;;;2543:350;-1:-1:-1;2543:350:52:o;1652:688::-;1094:13:6;:11;:13::i;:::-;1774:31:52::1;:13;1791:14;;-1:-1:-1::0;1545:36:47;;1460:124;1774:31:52::1;1766:81;;;::::0;-1:-1:-1;;;1766:81:52;;5511:2:67;1766:81:52::1;::::0;::::1;5493:21:67::0;5550:2;5530:18;;;5523:30;5589:34;5569:18;;;5562:62;-1:-1:-1;;;5640:18:67;;;5633:36;5686:19;;1766:81:52::1;;;;;;;;;-1:-1:-1::0;;;;;1884:25:52;::::1;1858:23;1884:25:::0;;;:17:::1;:25;::::0;;;;1942:15;;1968:31;;;1894:15:43;2009:14:52::1;::::0;::::1;:33:::0;;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;2009:33:52;::::1;::::0;::::1;::::0;;;2057::::1;::::0;:14;;;;;;2075:15:::1;1953:9:43::0;1915:75;;2075:15:52::1;1498:42:43::0;;;;;;;;1423:120;2057:33:52::1;2053:138;;;-1:-1:-1::0;2106:14:52::1;::::0;::::1;:33:::0;;-1:-1:-1;;2106:33:52::1;1894:15:43::0;2106:33:52::1;;;::::0;;2169:11:::1;::::0;2053:138:::1;2206:127;2242:7;1247::6::0;1273:6;-1:-1:-1;;;;;1273:6:6;;1201:85;2242:7:52::1;2206:127;::::0;;-1:-1:-1;;;;;6044:32:67;;;6026:51;;-1:-1:-1;;;;;6113:39:67;;6108:2;6093:18;;6086:67;6169:18;;6162:34;;;6227:2;6212:18;;6205:34;;;6013:3;5998:19;2206:127:52::1;;;;;;;1756:584;;1652:688:::0;;:::o;1831:101:6:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2900:333:52:-;3019:20;3055:19;3077:36;:14;3082:8;3077:4;:14::i;:::-;3094:19;536:8;3094:4;:19::i;:::-;3077:36;:::i;:::-;3055:58;;3123:21;3147:19;:4;3154:12;3147:19;:::i;:::-;3123:43;;3191:35;3196:29;:12;3201:6;3196:4;:12::i;:::-;3211:14;3196:29;:::i;3191:35::-;3176:50;2900:333;-1:-1:-1;;;;;;2900:333:52:o;3059:494:47:-;3146:7;3184:15;3172:8;:27;;;;;;;;:::i;:::-;;3169:378;;3222:82;2315:1;2228:26;2183:2;2228;:26;:::i;:::-;2302:14;;;;:::i;:::-;3234:34;;3248:1;3234:34;:::i;:::-;3270:1;2228:26;2183:2;2228;:26;:::i;:::-;3285:18;3222:11;:82::i;:::-;3215:89;;;;3169:378;3336:13;3324:8;:25;;;;;;;;:::i;:::-;;3321:226;;3372:64;3398:1;3402;2228:26;2183:2;2228;:26;:::i;3321:226::-;3474:62;3500:1;3504;2228:26;2183:2;2228;:26;:::i;:::-;3519:16;3474:11;:62::i;3321:226::-;3059:494;;;;:::o;2482:132::-;2551:6;2228:26;2183:2;2228;:26;:::i;:::-;2592:14;;:1;:14;:::i;1305:340:52:-;1094:13:6;:11;:13::i;:::-;1407:31:52::1;:13;1424:14;;-1:-1:-1::0;1545:36:47;;1460:124;1407:31:52::1;1399:81;;;::::0;-1:-1:-1;;;1399:81:52;;7109:2:67;1399:81:52::1;::::0;::::1;7091:21:67::0;7148:2;7128:18;;;7121:30;7187:34;7167:18;;;7160:62;-1:-1:-1;;;7238:18:67;;;7231:36;7284:19;;1399:81:52::1;6907:402:67::0;1399:81:52::1;1514:11;::::0;;1535:27;;;;1578:60:::1;1602:7;1247::6::0;1273:6;-1:-1:-1;;;;;1273:6:6;;1201:85;1602:7:52::1;1626:11;::::0;1578:60:::1;::::0;;-1:-1:-1;;;;;7588:32:67;;;7570:51;;7652:2;7637:18;;7630:34;;;7680:18;;7673:34;7558:2;7543:18;1578:60:52::1;;;;;;;1389:256;1305:340:::0;:::o;2923:130:47:-;2991:7;3021:25;3026:1;2371:15;3021:4;:25::i;2620:297::-;2699:6;;2729:9;2735:3;2183:2;2729:9;:::i;:::-;:14;;;;2721:58;;;;-1:-1:-1;;;2721:58:47;;8105:2:67;2721:58:47;;;8087:21:67;8144:2;8124:18;;;8117:30;8183:33;8163:18;;;8156:61;8234:18;;2721:58:47;7903:355:67;2721:58:47;2810:7;2183:2;2810:1;:7;:::i;:::-;2797:20;;:9;2803:3;2183:2;2797:9;:::i;:::-;:20;;;;2789:64;;;;-1:-1:-1;;;2789:64:47;;8706:2:67;2789:64:47;;;8688:21:67;8745:2;8725:18;;;8718:30;8784:33;8764:18;;;8757:61;8835:18;;2789:64:47;8504:355:67;2789:64:47;2899:9;2905:3;2183:2;2899:9;:::i;:::-;2887:22;;:2;:22;:::i;:::-;2883:26;;:1;:26;:::i;:::-;2864:46;2620:297;-1:-1:-1;;;2620:297:47:o;2260:56::-;2315:1;2228:26;2183:2;2228;:26;:::i;:::-;2302:14;;;;:::i;2081:198:6:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:6;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:6;;9211:2:67;2161:73:6::1;::::0;::::1;9193:21:67::0;9250:2;9230:18;;;9223:30;9289:34;9269:18;;;9262:62;-1:-1:-1;;;9340:18:67;;;9333:36;9386:19;;2161:73:6::1;9009:402:67::0;2161:73:6::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:6;719:10:23;1422:23:6;1414:68;;;;-1:-1:-1;;;1414:68:6;;9618:2:67;1414:68:6;;;9600:21:67;;;9637:18;;;9630:30;9696:34;9676:18;;;9669:62;9748:18;;1414:68:6;9416:356:67;2433:187:6;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:6;;;-1:-1:-1;;;;;;2541:17:6;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;825:259:47:-;877:6;918:1;913;899:20;891:59;;;;-1:-1:-1;;;891:59:47;;9979:2:67;891:59:47;;;9961:21:67;10018:2;9998:18;;;9991:30;10057:28;10037:18;;;10030:56;10103:18;;891:59:47;9777:350:67;891:59:47;985:95;1024:1;1041:8;1077:1;985:11;:95::i;677:146::-;729:6;762:57;788:1;806;810:8;762:11;:57::i;5724:337:30:-;5863:7;5882:14;5899:25;5906:1;5909;5912:11;5899:6;:25::i;:::-;5882:42;-1:-1:-1;5950:11:30;5938:8;:23;;;;;;;;:::i;:::-;;:56;;;;;5993:1;5978:11;5965:25;;;;;:::i;:::-;5975:1;5972;5965:25;:29;5938:56;5934:98;;;6010:11;6020:1;6010:11;;:::i;:::-;;;5934:98;6048:6;5724:337;-1:-1:-1;;;;;5724:337:30:o;1667:3925::-;1779:14;;;-1:-1:-1;;2316:1:30;2313;2306:20;2359:1;2356;2352:9;2343:18;;2414:5;2410:2;2407:13;2399:5;2395:2;2391:14;2387:34;2378:43;;;2516:5;2525:1;2516:10;2512:75;;2561:11;2553:5;:19;;;;;:::i;:::-;;2546:26;;;;;;2512:75;2711:5;2697:11;:19;2689:28;;;;;;2973:17;3108:11;3105:1;3102;3095:25;4486:1;4467;3656;3641:12;;:16;;3626:32;;3761:22;;;;4467:15;;;4466:21;;4719;;;4715:25;;4704:36;4788:21;;;4784:25;;4773:36;4858:21;;;4854:25;;4843:36;4928:21;;;4924:25;;4913:36;4998:21;;;4994:25;;4983:36;5069:21;;;5065:25;;;5054:36;3611:12;4006;;;4002:23;;;3998:31;;;3222:20;;;3211:32;;;4118:12;;;;3269:21;;3859:16;;;;4109:21;;;;5533:15;;1667:3925;-1:-1:-1;;;;1667:3925:30:o;405:199:67:-;492:20;;-1:-1:-1;;;;;541:38:67;;531:49;;521:77;;594:1;591;584:12;521:77;405:199;;;:::o;609:231::-;694:6;747:2;735:9;726:7;722:23;718:32;715:52;;;763:1;760;753:12;715:52;786:48;824:9;786:48;:::i;1036:326::-;1157:6;1165;1218:2;1206:9;1197:7;1193:23;1189:32;1186:52;;;1234:1;1231;1224:12;1186:52;1257:48;1295:9;1257:48;:::i;:::-;1247:58;1352:2;1337:18;;;;1324:32;;-1:-1:-1;;;1036:326:67:o;1367:343::-;1471:6;1479;1487;1540:2;1528:9;1519:7;1515:23;1511:32;1508:52;;;1556:1;1553;1546:12;1508:52;-1:-1:-1;;1579:23:67;;;1649:2;1634:18;;1621:32;;-1:-1:-1;1700:2:67;1685:18;;;1672:32;;1367:343;-1:-1:-1;1367:343:67:o;1923:364::-;2031:6;2039;2092:2;2080:9;2071:7;2067:23;2063:32;2060:52;;;2108:1;2105;2098:12;2060:52;2144:9;2131:23;2121:33;;2204:2;2193:9;2189:18;2176:32;2237:1;2230:5;2227:12;2217:40;;2253:1;2250;2243:12;2217:40;2276:5;2266:15;;;1923:364;;;;;:::o;2292:180::-;2351:6;2404:2;2392:9;2383:7;2379:23;2375:32;2372:52;;;2420:1;2417;2410:12;2372:52;-1:-1:-1;2443:23:67;;2292:180;-1:-1:-1;2292:180:67:o;2689:340::-;2754:6;2762;2815:2;2803:9;2794:7;2790:23;2786:32;2783:52;;;2831:1;2828;2821:12;2783:52;2867:9;2854:23;2844:33;;2927:2;2916:9;2912:18;2899:32;2974:5;2971:1;2960:20;2953:5;2950:31;2940:59;;2995:1;2992;2985:12;3034:286;3093:6;3146:2;3134:9;3125:7;3121:23;3117:32;3114:52;;;3162:1;3159;3152:12;3114:52;3188:23;;-1:-1:-1;;;;;3240:31:67;;3230:42;;3220:70;;3286:1;3283;3276:12;3325:127;3386:10;3381:3;3377:20;3374:1;3367:31;3417:4;3414:1;3407:15;3441:4;3438:1;3431:15;3457:341;3602:2;3587:18;;3635:1;3624:13;;3614:144;;3680:10;3675:3;3671:20;3668:1;3661:31;3715:4;3712:1;3705:15;3743:4;3740:1;3733:15;3614:144;3767:25;;;3457:341;:::o;3803:127::-;3864:10;3859:3;3855:20;3852:1;3845:31;3895:4;3892:1;3885:15;3919:4;3916:1;3909:15;3935:422;4024:1;4067:5;4024:1;4081:270;4102:7;4092:8;4089:21;4081:270;;;4161:4;4157:1;4153:6;4149:17;4143:4;4140:27;4137:53;;;4170:18;;:::i;:::-;4220:7;4210:8;4206:22;4203:55;;;4240:16;;;;4203:55;4319:22;;;;4279:15;;;;4081:270;;;4085:3;3935:422;;;;;:::o;4362:806::-;4411:5;4441:8;4431:80;;-1:-1:-1;4482:1:67;4496:5;;4431:80;4530:4;4520:76;;-1:-1:-1;4567:1:67;4581:5;;4520:76;4612:4;4630:1;4625:59;;;;4698:1;4693:130;;;;4605:218;;4625:59;4655:1;4646:10;;4669:5;;;4693:130;4730:3;4720:8;4717:17;4714:43;;;4737:18;;:::i;:::-;-1:-1:-1;;4793:1:67;4779:16;;4808:5;;4605:218;;4907:2;4897:8;4894:16;4888:3;4882:4;4879:13;4875:36;4869:2;4859:8;4856:16;4851:2;4845:4;4842:12;4838:35;4835:77;4832:159;;;-1:-1:-1;4944:19:67;;;4976:5;;4832:159;5023:34;5048:8;5042:4;5023:34;:::i;:::-;5093:6;5089:1;5085:6;5081:19;5072:7;5069:32;5066:58;;;5104:18;;:::i;:::-;5142:20;;4362:806;-1:-1:-1;;;4362:806:67:o;5173:131::-;5233:5;5262:36;5289:8;5283:4;5262:36;:::i;6250:127::-;6311:10;6306:3;6302:20;6299:1;6292:31;6342:4;6339:1;6332:15;6366:4;6363:1;6356:15;6382:217;6422:1;6448;6438:132;;6492:10;6487:3;6483:20;6480:1;6473:31;6527:4;6524:1;6517:15;6555:4;6552:1;6545:15;6438:132;-1:-1:-1;6584:9:67;;6382:217::o;6604:125::-;6669:9;;;6690:10;;;6687:36;;;6703:18;;:::i;6734:168::-;6807:9;;;6838;;6855:15;;;6849:22;;6835:37;6825:71;;6876:18;;:::i;7718:180::-;7755:3;7784:16;;;7802;;;;7780:39;7863:3;7834:14;;-1:-1:-1;;7850:18:67;;7831:38;7828:64;;;7872:18;;:::i;8263:236::-;8300:7;8377:1;8374;8363:16;8359:1;8356;8345:16;8341:39;8414:11;8411:1;8400:26;8389:37;;8457:11;8448:7;8445:24;8435:58;;8473:18;;:::i;:::-;8435:58;8263:236;;;;:::o;8864:140::-;8922:5;8951:47;8992:4;8982:8;8978:19;8972:4;8951:47;:::i",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "offset": [
    329,
    3235
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B0A47EE GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xB38EA175 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB38EA175 EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0xD05B0452 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xDD45DAA1 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xEB646D71 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xF30ED598 EQ PUSH2 0x27E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B0A47EE EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x8F24F601 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x92AE8CE0 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x9E447FC6 EQ PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2FCC650A GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x2FCC650A EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x745052C0 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x78A987BA EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x59F8B16 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0xD40FFC7 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xDC0BA72 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x12B9A5C9 EQ PUSH2 0x16A JUMPI DUP1 PUSH4 0x1A12CD47 EQ PUSH2 0x17D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x144 PUSH2 0x293 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x144 JUMP JUMPDEST PUSH2 0x144 PUSH4 0x1E13380 DUP2 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x178 CALLDATASIZE PUSH1 0x4 PUSH2 0xA42 JUMP JUMPDEST PUSH2 0x2A2 JUMP JUMPDEST PUSH2 0x185 PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x0 SWAP2 SWAP1 SWAP2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x14E JUMP JUMPDEST PUSH2 0x1AB PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA5D JUMP JUMPDEST PUSH2 0x300 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x12 PUSH2 0x144 JUMP JUMPDEST PUSH2 0x1AB PUSH2 0x470 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1CA CALLDATASIZE PUSH1 0x4 PUSH2 0xA87 JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x14D DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x144 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x14E JUMP JUMPDEST PUSH2 0x144 PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB3 JUMP JUMPDEST PUSH2 0x4D4 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x21C CALLDATASIZE PUSH1 0x4 PUSH2 0xAE7 JUMP JUMPDEST PUSH2 0x57A JUMP JUMPDEST PUSH2 0x1AB PUSH2 0x22F CALLDATASIZE PUSH1 0x4 PUSH2 0xAE7 JUMP JUMPDEST PUSH2 0x592 JUMP JUMPDEST PUSH2 0x185 PUSH1 0x2 NOT DUP2 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0xAE7 JUMP JUMPDEST PUSH2 0x669 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0xB00 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x767 JUMP JUMPDEST PUSH2 0x1AB PUSH2 0x279 CALLDATASIZE PUSH1 0x4 PUSH2 0xB2B JUMP JUMPDEST PUSH2 0x77F JUMP JUMPDEST PUSH2 0x286 PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14E SWAP2 SWAP1 PUSH2 0xB6A JUMP JUMPDEST PUSH2 0x29F PUSH1 0x12 PUSH1 0xA PUSH2 0xC8C JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE SWAP4 ADD SLOAD PUSH5 0xFFFFFFFFFF DUP1 DUP3 AND SWAP4 DUP6 ADD DUP5 SWAP1 MSTORE PUSH6 0x10000000000 SWAP1 SWAP2 DIV AND SWAP1 DUP4 ADD MSTORE ISZERO PUSH2 0x2F6 JUMPI MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST POP POP PUSH1 0x2 SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x308 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x314 DUP2 PUSH1 0x3 SLOAD LT ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x374 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5252482D3032303A5245574152445F455843454544535F4D4158 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x5F56414C5545 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 DUP3 SSTORE TIMESTAMP PUSH1 0x1 DUP4 ADD DUP1 SLOAD PUSH5 0xFFFFFFFFFF SWAP3 DUP4 AND PUSH6 0x10000000000 MUL PUSH10 0xFFFFFFFFFF0000000000 NOT DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH2 0x3DD SWAP3 SWAP2 DUP3 AND SWAP2 AND OR PUSH2 0x3CE PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x400 JUMPI POP PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH5 0xFFFFFFFFFF NOT AND TIMESTAMP PUSH5 0xFFFFFFFFFF AND OR SWAP1 SSTORE PUSH1 0x2 SLOAD JUMPDEST PUSH32 0xB3DADAB54C4CF13D74F841F035BA6D7DA492144B56CA32D1D0D340AEB2323FA7 PUSH2 0x433 PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP8 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0x478 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x482 PUSH1 0x0 PUSH2 0x852 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4A5 PUSH2 0x493 DUP6 PUSH2 0x57A JUMP JUMPDEST PUSH2 0x4A0 PUSH4 0x1E13380 PUSH2 0x57A JUMP JUMPDEST PUSH2 0x8A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4B3 DUP5 DUP4 PUSH2 0x906 JUMP JUMPDEST SWAP1 POP PUSH2 0x4CA PUSH2 0x24B PUSH2 0x4C4 DUP9 PUSH2 0x57A JUMP JUMPDEST DUP4 PUSH2 0x906 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x4EA JUMPI PUSH2 0x4EA PUSH2 0xB54 JUMP JUMPDEST SUB PUSH2 0x530 JUMPI PUSH2 0x529 PUSH1 0x2 PUSH2 0x500 PUSH1 0x12 PUSH1 0xA PUSH2 0xC8C JUMP JUMPDEST PUSH2 0x50A SWAP2 SWAP1 PUSH2 0xCAE JUMP JUMPDEST PUSH2 0x514 SWAP1 DUP6 PUSH2 0xCD0 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x522 PUSH1 0x12 PUSH1 0xA PUSH2 0xC8C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91B JUMP JUMPDEST SWAP1 POP PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x544 JUMPI PUSH2 0x544 PUSH2 0xB54 JUMP JUMPDEST SUB PUSH2 0x55B JUMPI PUSH2 0x529 DUP4 PUSH1 0x1 PUSH2 0x522 PUSH1 0x12 PUSH1 0xA PUSH2 0xC8C JUMP JUMPDEST PUSH2 0x529 DUP4 PUSH1 0x1 PUSH2 0x56D PUSH1 0x12 PUSH1 0xA PUSH2 0xC8C JUMP JUMPDEST PUSH1 0x1 PUSH2 0x91B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x588 PUSH1 0x12 PUSH1 0xA PUSH2 0xC8C JUMP JUMPDEST PUSH2 0x574 SWAP1 DUP4 PUSH2 0xCE3 JUMP JUMPDEST PUSH2 0x59A PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x5A6 DUP2 PUSH1 0x3 SLOAD LT ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x601 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5252482D3031303A5245574152445F455843454544535F4D4158 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x5F56414C5545 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH32 0xCCFBE413BA62FF5EC59C9423134293D4731D2F2B29B72ED562C3846F2C4954E3 PUSH2 0x63C PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x574 DUP3 PUSH1 0x2 PUSH2 0x4D4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x684 DUP4 PUSH1 0x12 PUSH2 0xCFA JUMP JUMPDEST PUSH1 0x0 SIGNEXTEND SLT ISZERO PUSH2 0x6D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A464D2D3031303A4558504F4E454E545F544F4F5F534D414C4C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36B JUMP JUMPDEST PUSH2 0x6E1 PUSH1 0x12 PUSH1 0x2 PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x0 SIGNEXTEND PUSH2 0x6EF DUP4 PUSH1 0x12 PUSH2 0xCFA JUMP JUMPDEST PUSH1 0x0 SIGNEXTEND SGT ISZERO PUSH2 0x740 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A464D2D3031313A4558504F4E454E545F544F4F5F4C4152474500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36B JUMP JUMPDEST PUSH2 0x74B DUP3 PUSH1 0x12 PUSH2 0xCFA JUMP JUMPDEST PUSH2 0x756 SWAP1 PUSH1 0xA PUSH2 0xD42 JUMP JUMPDEST PUSH2 0x760 SWAP1 DUP5 PUSH2 0xCE3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH2 0x775 PUSH1 0x12 PUSH1 0xA PUSH2 0xC8C JUMP JUMPDEST PUSH2 0x29F SWAP2 SWAP1 PUSH2 0xCAE JUMP JUMPDEST PUSH2 0x787 PUSH2 0x7F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36B JUMP JUMPDEST PUSH2 0x7F5 DUP2 PUSH2 0x852 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x482 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x8F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A55464D2D3032303A44495649534F525F5A45524F000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36B JUMP JUMPDEST PUSH2 0x760 DUP4 PUSH8 0xDE0B6B3A7640000 DUP5 PUSH2 0x978 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x760 DUP4 DUP4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x978 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x929 DUP7 DUP7 DUP7 PUSH2 0x978 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x93F JUMPI PUSH2 0x93F PUSH2 0xB54 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x95C JUMPI POP PUSH1 0x0 DUP5 DUP1 PUSH2 0x957 JUMPI PUSH2 0x957 PUSH2 0xC98 JUMP JUMPDEST DUP7 DUP9 MULMOD GT JUMPDEST ISZERO PUSH2 0x96F JUMPI PUSH2 0x96C PUSH1 0x1 DUP3 PUSH2 0xCD0 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 NOT DUP6 DUP8 MULMOD DUP6 DUP8 MUL SWAP3 POP DUP3 DUP2 LT DUP4 DUP3 SUB SUB SWAP2 POP POP DUP1 PUSH1 0x0 SUB PUSH2 0x9B2 JUMPI DUP4 DUP3 DUP2 PUSH2 0x9A8 JUMPI PUSH2 0x9A8 PUSH2 0xC98 JUMP JUMPDEST DIV SWAP3 POP POP POP PUSH2 0x760 JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP7 DUP9 MULMOD PUSH1 0x2 PUSH1 0x3 PUSH1 0x1 DUP9 NOT DUP2 ADD DUP10 AND SWAP9 DUP10 SWAP1 DIV SWAP2 DUP3 MUL DUP4 XOR DUP1 DUP4 MUL DUP5 SUB MUL DUP1 DUP4 MUL DUP5 SUB MUL DUP1 DUP4 MUL DUP5 SUB MUL DUP1 DUP4 MUL DUP5 SUB MUL DUP1 DUP4 MUL DUP5 SUB MUL SWAP2 DUP3 MUL SWAP1 SWAP3 SUB MUL PUSH1 0x0 DUP9 SWAP1 SUB DUP9 SWAP1 DIV SWAP1 SWAP2 ADD DUP6 DUP4 GT SWAP1 SWAP5 SUB SWAP4 SWAP1 SWAP4 MUL SWAP4 SUB SWAP5 SWAP1 SWAP5 DIV SWAP2 SWAP1 SWAP2 OR MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x760 DUP3 PUSH2 0xA26 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA79 DUP4 PUSH2 0xA26 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xA9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x3 DUP2 LT PUSH2 0xADC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 PUSH1 0x0 SIGNEXTEND DUP2 EQ PUSH2 0xADC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x760 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0xB8C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0xBE3 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0xBC9 JUMPI PUSH2 0xBC9 PUSH2 0xB92 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0xBD6 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0xBAD JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xBFA JUMPI POP PUSH1 0x1 PUSH2 0x574 JUMP JUMPDEST DUP2 PUSH2 0xC07 JUMPI POP PUSH1 0x0 PUSH2 0x574 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC1D JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC27 JUMPI PUSH2 0xC43 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x574 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC38 JUMPI PUSH2 0xC38 PUSH2 0xB92 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x574 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC66 JUMPI POP DUP2 DUP2 EXP PUSH2 0x574 JUMP JUMPDEST PUSH2 0xC70 DUP4 DUP4 PUSH2 0xBA8 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0xC84 JUMPI PUSH2 0xC84 PUSH2 0xB92 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x760 DUP4 DUP4 PUSH2 0xBEB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xCCB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x574 JUMPI PUSH2 0x574 PUSH2 0xB92 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x574 JUMPI PUSH2 0x574 PUSH2 0xB92 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SIGNEXTEND SWAP1 DUP4 SWAP1 SIGNEXTEND ADD PUSH1 0x7F DUP2 SGT PUSH1 0x7F NOT DUP3 SLT OR ISZERO PUSH2 0x574 JUMPI PUSH2 0x574 PUSH2 0xB92 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 SIGNEXTEND DUP3 PUSH1 0x0 SIGNEXTEND MUL DUP1 PUSH1 0x0 SIGNEXTEND SWAP2 POP DUP1 DUP3 EQ PUSH2 0xD3B JUMPI PUSH2 0xD3B PUSH2 0xB92 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x760 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0xBEB JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 SGT 0x27 0xAF TIMESTAMP SGT 0x2A 0xB0 0x4A 0xFC 0x24 0xCC 0xE1 MSTORE8 SWAP9 PUSH11 0x8916A50A4E8BA8C96BA357 DUP4 SWAP5 0x23 SWAP8 BYTE PUSH5 0x736F6C6343 STOP ADDMOD SGT STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "5": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "CALLVALUE",
      "path": "52"
    },
    "6": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "7": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "ISZERO",
      "path": "52"
    },
    "8": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "12": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "REVERT",
      "path": "52"
    },
    "16": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "17": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "POP",
      "path": "52"
    },
    "18": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "CALLDATASIZE",
      "path": "52"
    },
    "21": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "LT",
      "path": "52"
    },
    "22": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x137"
    },
    "25": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "26": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "CALLDATALOAD",
      "path": "52"
    },
    "29": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "SHR",
      "path": "52"
    },
    "32": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "33": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x7B0A47EE"
    },
    "38": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "GT",
      "path": "52"
    },
    "39": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0xB8"
    },
    "42": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "43": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "44": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xB38EA175"
    },
    "49": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "GT",
      "path": "52"
    },
    "50": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x7C"
    },
    "53": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "54": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "55": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xB38EA175"
    },
    "60": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "61": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x234"
    },
    "64": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "65": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "66": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xD05B0452"
    },
    "71": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "72": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x23D"
    },
    "75": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "76": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "77": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xDD45DAA1"
    },
    "82": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "83": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x250"
    },
    "86": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "87": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "88": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xEB646D71"
    },
    "93": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "94": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x263"
    },
    "97": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "98": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "99": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xF2FDE38B"
    },
    "104": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "105": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x26B"
    },
    "108": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "109": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "110": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xF30ED598"
    },
    "115": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "116": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x27E"
    },
    "119": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "120": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "122": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "123": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "REVERT",
      "path": "52"
    },
    "124": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "125": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "126": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x7B0A47EE"
    },
    "131": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "132": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1D8"
    },
    "135": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "136": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "137": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x8DA5CB5B"
    },
    "142": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "143": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1E0"
    },
    "146": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "147": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "148": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x8F24F601"
    },
    "153": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "154": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1FB"
    },
    "157": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "158": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "159": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x92AE8CE0"
    },
    "164": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "165": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x20E"
    },
    "168": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "169": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "170": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x9E447FC6"
    },
    "175": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "176": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x221"
    },
    "179": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "180": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "182": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "183": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "REVERT",
      "path": "52"
    },
    "184": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "185": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "186": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x2FCC650A"
    },
    "191": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "GT",
      "path": "52"
    },
    "192": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0xFF"
    },
    "195": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "196": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "197": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x2FCC650A"
    },
    "202": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "203": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x198"
    },
    "206": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "207": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "208": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x313CE567"
    },
    "213": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "214": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1AD"
    },
    "217": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "218": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "219": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x715018A6"
    },
    "224": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "225": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1B4"
    },
    "228": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "229": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "230": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x745052C0"
    },
    "235": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "236": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1BC"
    },
    "239": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "240": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "241": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x78A987BA"
    },
    "246": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "247": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1CF"
    },
    "250": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "251": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "253": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "254": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "REVERT",
      "path": "52"
    },
    "255": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "256": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "257": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x59F8B16"
    },
    "262": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "263": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x13C"
    },
    "266": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "267": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "268": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xD40FFC7"
    },
    "273": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "274": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x157"
    },
    "277": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "278": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "279": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0xDC0BA72"
    },
    "284": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "285": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x15F"
    },
    "288": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "289": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "290": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x12B9A5C9"
    },
    "295": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "296": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x16A"
    },
    "299": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "300": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "301": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x1A12CD47"
    },
    "306": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "EQ",
      "path": "52"
    },
    "307": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x17D"
    },
    "310": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "311": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "312": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "314": {
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "DUP1",
      "path": "52"
    },
    "315": {
      "first_revert": true,
      "fn": null,
      "offset": [
        329,
        3235
      ],
      "op": "REVERT",
      "path": "52"
    },
    "316": {
      "offset": [
        2191,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "317": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x144"
    },
    "320": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x293"
    },
    "323": {
      "fn": null,
      "jump": "i",
      "offset": [
        2191,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "324": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "325": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x40"
    },
    "327": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "MLOAD",
      "path": "47"
    },
    "328": {
      "op": "SWAP1"
    },
    "329": {
      "op": "DUP2"
    },
    "330": {
      "op": "MSTORE"
    },
    "331": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "333": {
      "op": "ADD"
    },
    "334": {
      "offset": [
        2191,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "335": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x40"
    },
    "337": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "MLOAD",
      "path": "47"
    },
    "338": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "DUP1",
      "path": "47"
    },
    "339": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "SWAP2",
      "path": "47"
    },
    "340": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "SUB",
      "path": "47"
    },
    "341": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "342": {
      "fn": null,
      "offset": [
        2191,
        2254
      ],
      "op": "RETURN",
      "path": "47"
    },
    "343": {
      "fn": "RewardHelper.maxRewardRate",
      "offset": [
        2347,
        2441
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "344": {
      "fn": "RewardHelper.maxRewardRate",
      "offset": [
        2420,
        2434
      ],
      "op": "PUSH1",
      "path": "52",
      "statement": 0,
      "value": "0x3"
    },
    "346": {
      "fn": "RewardHelper.maxRewardRate",
      "offset": [
        2420,
        2434
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "347": {
      "fn": "RewardHelper.maxRewardRate",
      "offset": [
        2347,
        2441
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x144"
    },
    "350": {
      "fn": "RewardHelper.maxRewardRate",
      "offset": [
        2347,
        2441
      ],
      "op": "JUMP",
      "path": "52"
    },
    "351": {
      "offset": [
        496,
        544
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "352": {
      "fn": "RewardHelper.maxRewardRate",
      "offset": [
        496,
        544
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x144"
    },
    "355": {
      "offset": [
        536,
        544
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x1E13380"
    },
    "360": {
      "offset": [
        496,
        544
      ],
      "op": "DUP2",
      "path": "52"
    },
    "361": {
      "fn": "RewardHelper.maxRewardRate",
      "offset": [
        496,
        544
      ],
      "op": "JUMP",
      "path": "52"
    },
    "362": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "363": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x144"
    },
    "366": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x178"
    },
    "369": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "CALLDATASIZE",
      "path": "52"
    },
    "370": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x4"
    },
    "372": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0xA42"
    },
    "375": {
      "fn": "RewardHelper.getTargetRewardRate",
      "jump": "i",
      "offset": [
        2543,
        2893
      ],
      "op": "JUMP",
      "path": "52"
    },
    "376": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "377": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x2A2"
    },
    "380": {
      "fn": "RewardHelper.getTargetRewardRate",
      "jump": "i",
      "offset": [
        2543,
        2893
      ],
      "op": "JUMP",
      "path": "52"
    },
    "381": {
      "offset": [
        2156,
        2185
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "382": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2156,
        2185
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x185"
    },
    "385": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "387": {
      "offset": [
        2156,
        2185
      ],
      "op": "DUP2",
      "path": "47"
    },
    "388": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2156,
        2185
      ],
      "op": "JUMP",
      "path": "47"
    },
    "389": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2156,
        2185
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "390": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2156,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x40"
    },
    "392": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2156,
        2185
      ],
      "op": "MLOAD",
      "path": "47"
    },
    "393": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "395": {
      "op": "SWAP2"
    },
    "396": {
      "op": "SWAP1"
    },
    "397": {
      "op": "SWAP2"
    },
    "398": {
      "op": "SIGNEXTEND"
    },
    "399": {
      "op": "DUP2"
    },
    "400": {
      "op": "MSTORE"
    },
    "401": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "403": {
      "op": "ADD"
    },
    "404": {
      "offset": [
        2156,
        2185
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x14E"
    },
    "407": {
      "op": "JUMP"
    },
    "408": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "409": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1AB"
    },
    "412": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1A6"
    },
    "415": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "CALLDATASIZE",
      "path": "52"
    },
    "416": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x4"
    },
    "418": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0xA5D"
    },
    "421": {
      "fn": "RewardHelper.setTargetRewardRate",
      "jump": "i",
      "offset": [
        1652,
        2340
      ],
      "op": "JUMP",
      "path": "52"
    },
    "422": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "423": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x300"
    },
    "426": {
      "fn": "RewardHelper.setTargetRewardRate",
      "jump": "i",
      "offset": [
        1652,
        2340
      ],
      "op": "JUMP",
      "path": "52"
    },
    "427": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "428": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "STOP",
      "path": "52"
    },
    "429": {
      "fn": "UFixedType.decimals",
      "offset": [
        2393,
        2476
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "430": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "432": {
      "fn": "UFixedType.decimals",
      "offset": [
        2393,
        2476
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x144"
    },
    "435": {
      "fn": "UFixedType.decimals",
      "offset": [
        2393,
        2476
      ],
      "op": "JUMP",
      "path": "47"
    },
    "436": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1831,
        1932
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "437": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1831,
        1932
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x1AB"
    },
    "440": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1831,
        1932
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x470"
    },
    "443": {
      "fn": "Ownable.renounceOwnership",
      "jump": "i",
      "offset": [
        1831,
        1932
      ],
      "op": "JUMP",
      "path": "6"
    },
    "444": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "445": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x144"
    },
    "448": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1CA"
    },
    "451": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "CALLDATASIZE",
      "path": "52"
    },
    "452": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x4"
    },
    "454": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0xA87"
    },
    "457": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "i",
      "offset": [
        2900,
        3233
      ],
      "op": "JUMP",
      "path": "52"
    },
    "458": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "459": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x484"
    },
    "462": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "i",
      "offset": [
        2900,
        3233
      ],
      "op": "JUMP",
      "path": "52"
    },
    "463": {
      "offset": [
        388,
        439
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "464": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        388,
        439
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x144"
    },
    "467": {
      "offset": [
        436,
        439
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x14D"
    },
    "470": {
      "offset": [
        388,
        439
      ],
      "op": "DUP2",
      "path": "52"
    },
    "471": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        388,
        439
      ],
      "op": "JUMP",
      "path": "52"
    },
    "472": {
      "fn": "RewardHelper.rewardRate",
      "offset": [
        2448,
        2536
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "473": {
      "fn": "RewardHelper.rewardRate",
      "offset": [
        2518,
        2529
      ],
      "op": "PUSH1",
      "path": "52",
      "statement": 1,
      "value": "0x2"
    },
    "475": {
      "fn": "RewardHelper.rewardRate",
      "offset": [
        2518,
        2529
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "476": {
      "fn": "RewardHelper.rewardRate",
      "offset": [
        2448,
        2536
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x144"
    },
    "479": {
      "fn": "RewardHelper.rewardRate",
      "offset": [
        2448,
        2536
      ],
      "op": "JUMP",
      "path": "52"
    },
    "480": {
      "fn": "Ownable.owner",
      "offset": [
        1201,
        1286
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "481": {
      "fn": "Ownable.owner",
      "offset": [
        1247,
        1254
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x0"
    },
    "483": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "SLOAD",
      "path": "6",
      "statement": 2
    },
    "484": {
      "fn": "Ownable.owner",
      "offset": [
        1201,
        1286
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x40"
    },
    "486": {
      "fn": "Ownable.owner",
      "offset": [
        1201,
        1286
      ],
      "op": "MLOAD",
      "path": "6"
    },
    "487": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "489": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "491": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "493": {
      "op": "SHL"
    },
    "494": {
      "op": "SUB"
    },
    "495": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "SWAP1",
      "path": "6"
    },
    "496": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "SWAP2",
      "path": "6"
    },
    "497": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "AND",
      "path": "6"
    },
    "498": {
      "op": "DUP2"
    },
    "499": {
      "op": "MSTORE"
    },
    "500": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "502": {
      "op": "ADD"
    },
    "503": {
      "fn": "Ownable.owner",
      "offset": [
        1201,
        1286
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x14E"
    },
    "506": {
      "op": "JUMP"
    },
    "507": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "508": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x144"
    },
    "511": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x209"
    },
    "514": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "CALLDATASIZE",
      "path": "47"
    },
    "515": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x4"
    },
    "517": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xAB3"
    },
    "520": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        3059,
        3553
      ],
      "op": "JUMP",
      "path": "47"
    },
    "521": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "522": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x4D4"
    },
    "525": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        3059,
        3553
      ],
      "op": "JUMP",
      "path": "47"
    },
    "526": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "527": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x144"
    },
    "530": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x21C"
    },
    "533": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "CALLDATASIZE",
      "path": "47"
    },
    "534": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x4"
    },
    "536": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xAE7"
    },
    "539": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2482,
        2614
      ],
      "op": "JUMP",
      "path": "47"
    },
    "540": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "541": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x57A"
    },
    "544": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2482,
        2614
      ],
      "op": "JUMP",
      "path": "47"
    },
    "545": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "546": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x1AB"
    },
    "549": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x22F"
    },
    "552": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "CALLDATASIZE",
      "path": "52"
    },
    "553": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x4"
    },
    "555": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0xAE7"
    },
    "558": {
      "fn": "RewardHelper.setRewardRate",
      "jump": "i",
      "offset": [
        1305,
        1645
      ],
      "op": "JUMP",
      "path": "52"
    },
    "559": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "560": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x592"
    },
    "563": {
      "fn": "RewardHelper.setRewardRate",
      "jump": "i",
      "offset": [
        1305,
        1645
      ],
      "op": "JUMP",
      "path": "52"
    },
    "564": {
      "offset": [
        445,
        490
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "565": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        445,
        490
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x185"
    },
    "568": {
      "op": "PUSH1",
      "value": "0x2"
    },
    "570": {
      "op": "NOT"
    },
    "571": {
      "offset": [
        445,
        490
      ],
      "op": "DUP2",
      "path": "52"
    },
    "572": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        445,
        490
      ],
      "op": "JUMP",
      "path": "52"
    },
    "573": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "574": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x144"
    },
    "577": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x24B"
    },
    "580": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "CALLDATASIZE",
      "path": "47"
    },
    "581": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x4"
    },
    "583": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xAE7"
    },
    "586": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        2923,
        3053
      ],
      "op": "JUMP",
      "path": "47"
    },
    "587": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "588": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x669"
    },
    "591": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        2923,
        3053
      ],
      "op": "JUMP",
      "path": "47"
    },
    "592": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "593": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x144"
    },
    "596": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x25E"
    },
    "599": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "CALLDATASIZE",
      "path": "47"
    },
    "600": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x4"
    },
    "602": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xB00"
    },
    "605": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2620,
        2917
      ],
      "op": "JUMP",
      "path": "47"
    },
    "606": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "607": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x676"
    },
    "610": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2620,
        2917
      ],
      "op": "JUMP",
      "path": "47"
    },
    "611": {
      "offset": [
        2260,
        2316
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "612": {
      "fn": "UFixedType.itof",
      "offset": [
        2260,
        2316
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x144"
    },
    "615": {
      "fn": "UFixedType.itof",
      "offset": [
        2260,
        2316
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x767"
    },
    "618": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2260,
        2316
      ],
      "op": "JUMP",
      "path": "47"
    },
    "619": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "620": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x1AB"
    },
    "623": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x279"
    },
    "626": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "CALLDATASIZE",
      "path": "6"
    },
    "627": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x4"
    },
    "629": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0xB2B"
    },
    "632": {
      "fn": "Ownable.transferOwnership",
      "jump": "i",
      "offset": [
        2081,
        2279
      ],
      "op": "JUMP",
      "path": "6"
    },
    "633": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "634": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x77F"
    },
    "637": {
      "fn": "Ownable.transferOwnership",
      "jump": "i",
      "offset": [
        2081,
        2279
      ],
      "op": "JUMP",
      "path": "6"
    },
    "638": {
      "offset": [
        2327,
        2386
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "639": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x286"
    },
    "642": {
      "offset": [
        2371,
        2386
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x2"
    },
    "644": {
      "offset": [
        2327,
        2386
      ],
      "op": "DUP2",
      "path": "47"
    },
    "645": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "JUMP",
      "path": "47"
    },
    "646": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "647": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x40"
    },
    "649": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "MLOAD",
      "path": "47"
    },
    "650": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x14E"
    },
    "653": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "SWAP2",
      "path": "47"
    },
    "654": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "655": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2327,
        2386
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xB6A"
    },
    "658": {
      "fn": "Ownable.transferOwnership",
      "jump": "i",
      "offset": [
        2327,
        2386
      ],
      "op": "JUMP",
      "path": "47"
    },
    "659": {
      "offset": [
        2191,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "660": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x29F"
    },
    "663": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "665": {
      "offset": [
        2228,
        2230
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0xA"
    },
    "667": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xC8C"
    },
    "670": {
      "fn": "Ownable.transferOwnership",
      "jump": "i",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "671": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "672": {
      "offset": [
        2191,
        2254
      ],
      "op": "DUP2",
      "path": "47"
    },
    "673": {
      "fn": "Ownable.transferOwnership",
      "jump": "o",
      "offset": [
        2191,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "674": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "675": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "677": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "679": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "681": {
      "op": "SHL"
    },
    "682": {
      "op": "SUB"
    },
    "683": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "DUP2",
      "path": "52"
    },
    "684": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "AND",
      "path": "52"
    },
    "685": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2632,
        2638
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "687": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "688": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "DUP2",
      "path": "52"
    },
    "689": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "690": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2696
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x1"
    },
    "692": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x20"
    },
    "694": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "DUP2",
      "path": "52"
    },
    "695": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "DUP2",
      "path": "52"
    },
    "696": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "697": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "699": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "DUP1",
      "path": "52"
    },
    "700": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "DUP5",
      "path": "52"
    },
    "701": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2679,
        2704
      ],
      "op": "KECCAK256",
      "path": "52"
    },
    "702": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP2",
      "path": "52"
    },
    "703": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "MLOAD",
      "path": "52"
    },
    "704": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x60"
    },
    "706": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP2",
      "path": "52"
    },
    "707": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "ADD",
      "path": "52"
    },
    "708": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP4",
      "path": "52"
    },
    "709": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "710": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP2",
      "path": "52"
    },
    "711": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "712": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP2",
      "path": "52"
    },
    "713": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "714": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "SWAP4",
      "path": "52"
    },
    "715": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "ADD",
      "path": "52"
    },
    "716": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "717": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "PUSH5",
      "path": "52",
      "value": "0xFFFFFFFFFF"
    },
    "723": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP1",
      "path": "52"
    },
    "724": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP3",
      "path": "52"
    },
    "725": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "AND",
      "path": "52"
    },
    "726": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "SWAP4",
      "path": "52"
    },
    "727": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP6",
      "path": "52"
    },
    "728": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "ADD",
      "path": "52"
    },
    "729": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP5",
      "path": "52"
    },
    "730": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "731": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "732": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "PUSH6",
      "path": "52",
      "value": "0x10000000000"
    },
    "739": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "740": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "SWAP2",
      "path": "52"
    },
    "741": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DIV",
      "path": "52"
    },
    "742": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "AND",
      "path": "52"
    },
    "743": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "744": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "DUP4",
      "path": "52"
    },
    "745": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "ADD",
      "path": "52"
    },
    "746": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2654,
        2704
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "747": {
      "fn": "gtTimestamp",
      "offset": [
        1012,
        1053
      ],
      "op": "ISZERO",
      "path": "43",
      "statement": 3
    },
    "748": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2715,
        2800
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x2F6"
    },
    "751": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2715,
        2800
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "752": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2774,
        2789
      ],
      "op": "MLOAD",
      "path": "52",
      "statement": 4
    },
    "753": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2774,
        2789
      ],
      "op": "SWAP3",
      "path": "52"
    },
    "754": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "SWAP2",
      "path": "52"
    },
    "755": {
      "op": "POP"
    },
    "756": {
      "op": "POP"
    },
    "757": {
      "fn": "RewardHelper.getTargetRewardRate",
      "jump": "o",
      "offset": [
        2543,
        2893
      ],
      "op": "JUMP",
      "path": "52"
    },
    "758": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2715,
        2800
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "759": {
      "op": "POP"
    },
    "760": {
      "op": "POP"
    },
    "761": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2875,
        2886
      ],
      "op": "PUSH1",
      "path": "52",
      "statement": 5,
      "value": "0x2"
    },
    "763": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2875,
        2886
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "764": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2875,
        2886
      ],
      "op": "SWAP2",
      "path": "52"
    },
    "765": {
      "fn": "RewardHelper.getTargetRewardRate",
      "offset": [
        2543,
        2893
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "766": {
      "op": "POP"
    },
    "767": {
      "fn": "RewardHelper.getTargetRewardRate",
      "jump": "o",
      "offset": [
        2543,
        2893
      ],
      "op": "JUMP",
      "path": "52"
    },
    "768": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "769": {
      "offset": [
        1094,
        1107
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x308"
    },
    "772": {
      "offset": [
        1094,
        1105
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x7F8"
    },
    "775": {
      "jump": "i",
      "offset": [
        1094,
        1107
      ],
      "op": "JUMP",
      "path": "6"
    },
    "776": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1094,
        1107
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "777": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1774,
        1805
      ],
      "op": "PUSH2",
      "path": "52",
      "statement": 6,
      "value": "0x314"
    },
    "780": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1774,
        1787
      ],
      "op": "DUP2",
      "path": "52"
    },
    "781": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1791,
        1805
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x3"
    },
    "783": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1791,
        1805
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "784": {
      "op": "LT"
    },
    "785": {
      "fn": "lteUFixed",
      "offset": [
        1545,
        1581
      ],
      "op": "ISZERO",
      "path": "47",
      "statement": 7
    },
    "786": {
      "fn": "lteUFixed",
      "offset": [
        1545,
        1581
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "787": {
      "fn": "lteUFixed",
      "offset": [
        1460,
        1584
      ],
      "op": "JUMP",
      "path": "47"
    },
    "788": {
      "branch": 37,
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1774,
        1805
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "789": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x374"
    },
    "792": {
      "branch": 37,
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "793": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "795": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "MLOAD",
      "path": "52"
    },
    "796": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "800": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "802": {
      "op": "SHL"
    },
    "803": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "DUP2",
      "path": "52"
    },
    "804": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "805": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "807": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x4"
    },
    "809": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "DUP3",
      "path": "52"
    },
    "810": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "ADD",
      "path": "52"
    },
    "811": {
      "op": "MSTORE"
    },
    "812": {
      "op": "PUSH1",
      "value": "0x26"
    },
    "814": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "816": {
      "op": "DUP3"
    },
    "817": {
      "op": "ADD"
    },
    "818": {
      "op": "MSTORE"
    },
    "819": {
      "op": "PUSH32",
      "value": "0x4552524F523A5252482D3032303A5245574152445F455843454544535F4D4158"
    },
    "852": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "854": {
      "op": "DUP3"
    },
    "855": {
      "op": "ADD"
    },
    "856": {
      "op": "MSTORE"
    },
    "857": {
      "op": "PUSH6",
      "value": "0x5F56414C5545"
    },
    "864": {
      "op": "PUSH1",
      "value": "0xD0"
    },
    "866": {
      "op": "SHL"
    },
    "867": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "869": {
      "op": "DUP3"
    },
    "870": {
      "op": "ADD"
    },
    "871": {
      "op": "MSTORE"
    },
    "872": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "874": {
      "op": "ADD"
    },
    "875": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "876": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "878": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "MLOAD",
      "path": "52"
    },
    "879": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "DUP1",
      "path": "52"
    },
    "880": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "SWAP2",
      "path": "52"
    },
    "881": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "SUB",
      "path": "52"
    },
    "882": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "883": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "52"
    },
    "884": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1766,
        1847
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "885": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "887": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "889": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "891": {
      "op": "SHL"
    },
    "892": {
      "op": "SUB"
    },
    "893": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "DUP3",
      "path": "52"
    },
    "894": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "AND",
      "path": "52"
    },
    "895": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1858,
        1881
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "897": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "898": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "DUP2",
      "path": "52"
    },
    "899": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "900": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1901
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x1"
    },
    "902": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x20"
    },
    "904": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "905": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "907": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "908": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1884,
        1909
      ],
      "op": "KECCAK256",
      "path": "52"
    },
    "909": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1942,
        1957
      ],
      "op": "DUP1",
      "path": "52"
    },
    "910": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1942,
        1957
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "911": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1968,
        1999
      ],
      "op": "DUP3",
      "path": "52",
      "statement": 8
    },
    "912": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1968,
        1999
      ],
      "op": "DUP3",
      "path": "52"
    },
    "913": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1968,
        1999
      ],
      "op": "SSTORE",
      "path": "52"
    },
    "914": {
      "fn": "blockTimestamp",
      "offset": [
        1894,
        1909
      ],
      "op": "TIMESTAMP",
      "path": "43",
      "statement": 9
    },
    "915": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2023
      ],
      "op": "PUSH1",
      "path": "52",
      "statement": 10,
      "value": "0x1"
    },
    "917": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2023
      ],
      "op": "DUP4",
      "path": "52"
    },
    "918": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2023
      ],
      "op": "ADD",
      "path": "52"
    },
    "919": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "DUP1",
      "path": "52"
    },
    "920": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "921": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "PUSH5",
      "path": "52",
      "value": "0xFFFFFFFFFF"
    },
    "927": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "SWAP3",
      "path": "52"
    },
    "928": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "DUP4",
      "path": "52"
    },
    "929": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "AND",
      "path": "52"
    },
    "930": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "PUSH6",
      "path": "52",
      "value": "0x10000000000"
    },
    "937": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "MUL",
      "path": "52"
    },
    "938": {
      "op": "PUSH10",
      "value": "0xFFFFFFFFFF0000000000"
    },
    "949": {
      "op": "NOT"
    },
    "950": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "DUP3",
      "path": "52"
    },
    "951": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "AND",
      "path": "52"
    },
    "952": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "DUP2",
      "path": "52"
    },
    "953": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "OR",
      "path": "52"
    },
    "954": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "955": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "SWAP3",
      "path": "52"
    },
    "956": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2009,
        2042
      ],
      "op": "SSTORE",
      "path": "52"
    },
    "957": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2090
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x3DD"
    },
    "960": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2090
      ],
      "op": "SWAP3",
      "path": "52"
    },
    "961": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2071
      ],
      "op": "SWAP2",
      "path": "52"
    },
    "962": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2071
      ],
      "op": "DUP3",
      "path": "52"
    },
    "963": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2071
      ],
      "op": "AND",
      "path": "52"
    },
    "964": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2071
      ],
      "op": "SWAP2",
      "path": "52"
    },
    "965": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2071
      ],
      "op": "AND",
      "path": "52"
    },
    "966": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2071
      ],
      "op": "OR",
      "path": "52"
    },
    "967": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2075,
        2090
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x3CE"
    },
    "970": {
      "fn": "zeroTimestamp",
      "offset": [
        1953,
        1962
      ],
      "op": "PUSH1",
      "path": "43",
      "value": "0x0"
    },
    "972": {
      "fn": "zeroTimestamp",
      "offset": [
        1915,
        1990
      ],
      "op": "SWAP1",
      "path": "43"
    },
    "973": {
      "fn": "zeroTimestamp",
      "offset": [
        1915,
        1990
      ],
      "op": "JUMP",
      "path": "43"
    },
    "974": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2075,
        2090
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "975": {
      "fn": "eqTimestamp",
      "offset": [
        1498,
        1540
      ],
      "op": "PUSH5",
      "path": "43",
      "statement": 11,
      "value": "0xFFFFFFFFFF"
    },
    "981": {
      "fn": "eqTimestamp",
      "offset": [
        1498,
        1540
      ],
      "op": "SWAP1",
      "path": "43"
    },
    "982": {
      "fn": "eqTimestamp",
      "offset": [
        1498,
        1540
      ],
      "op": "DUP2",
      "path": "43"
    },
    "983": {
      "fn": "eqTimestamp",
      "offset": [
        1498,
        1540
      ],
      "op": "AND",
      "path": "43"
    },
    "984": {
      "fn": "eqTimestamp",
      "offset": [
        1498,
        1540
      ],
      "op": "SWAP2",
      "path": "43"
    },
    "985": {
      "fn": "eqTimestamp",
      "offset": [
        1498,
        1540
      ],
      "op": "AND",
      "path": "43"
    },
    "986": {
      "fn": "eqTimestamp",
      "offset": [
        1498,
        1540
      ],
      "op": "EQ",
      "path": "43"
    },
    "987": {
      "fn": "eqTimestamp",
      "offset": [
        1498,
        1540
      ],
      "op": "SWAP1",
      "path": "43"
    },
    "988": {
      "fn": "eqTimestamp",
      "offset": [
        1423,
        1543
      ],
      "op": "JUMP",
      "path": "43"
    },
    "989": {
      "branch": 38,
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2057,
        2090
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "990": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2053,
        2191
      ],
      "op": "ISZERO",
      "path": "52"
    },
    "991": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2053,
        2191
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x400"
    },
    "994": {
      "branch": 38,
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2053,
        2191
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "995": {
      "op": "POP"
    },
    "996": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2120
      ],
      "op": "PUSH1",
      "path": "52",
      "statement": 12,
      "value": "0x1"
    },
    "998": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2120
      ],
      "op": "DUP2",
      "path": "52"
    },
    "999": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2120
      ],
      "op": "ADD",
      "path": "52"
    },
    "1000": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2139
      ],
      "op": "DUP1",
      "path": "52"
    },
    "1001": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2139
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "1002": {
      "op": "PUSH5",
      "value": "0xFFFFFFFFFF"
    },
    "1008": {
      "op": "NOT"
    },
    "1009": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2139
      ],
      "op": "AND",
      "path": "52"
    },
    "1010": {
      "fn": "blockTimestamp",
      "offset": [
        1894,
        1909
      ],
      "op": "TIMESTAMP",
      "path": "43"
    },
    "1011": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2139
      ],
      "op": "PUSH5",
      "path": "52",
      "value": "0xFFFFFFFFFF"
    },
    "1017": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2139
      ],
      "op": "AND",
      "path": "52"
    },
    "1018": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2139
      ],
      "op": "OR",
      "path": "52"
    },
    "1019": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2139
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "1020": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2106,
        2139
      ],
      "op": "SSTORE",
      "path": "52"
    },
    "1021": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2169,
        2180
      ],
      "op": "PUSH1",
      "path": "52",
      "statement": 13,
      "value": "0x2"
    },
    "1023": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2169,
        2180
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "1024": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2053,
        2191
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1025": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "PUSH32",
      "path": "52",
      "statement": 14,
      "value": "0xB3DADAB54C4CF13D74F841F035BA6D7DA492144B56CA32D1D0D340AEB2323FA7"
    },
    "1058": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2242,
        2249
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x433"
    },
    "1061": {
      "fn": "Ownable.owner",
      "offset": [
        1247,
        1254
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x0"
    },
    "1063": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "SLOAD",
      "path": "6"
    },
    "1064": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1066": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1068": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1070": {
      "op": "SHL"
    },
    "1071": {
      "op": "SUB"
    },
    "1072": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "AND",
      "path": "6"
    },
    "1073": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "SWAP1",
      "path": "6"
    },
    "1074": {
      "fn": "Ownable.owner",
      "offset": [
        1201,
        1286
      ],
      "op": "JUMP",
      "path": "6"
    },
    "1075": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2242,
        2249
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1076": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "1078": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "DUP1",
      "path": "52"
    },
    "1079": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "MLOAD",
      "path": "52"
    },
    "1080": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1082": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1084": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1086": {
      "op": "SHL"
    },
    "1087": {
      "op": "SUB"
    },
    "1088": {
      "op": "SWAP1"
    },
    "1089": {
      "op": "SWAP3"
    },
    "1090": {
      "op": "AND"
    },
    "1091": {
      "op": "DUP3"
    },
    "1092": {
      "op": "MSTORE"
    },
    "1093": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1095": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1097": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1099": {
      "op": "SHL"
    },
    "1100": {
      "op": "SUB"
    },
    "1101": {
      "op": "DUP8"
    },
    "1102": {
      "op": "AND"
    },
    "1103": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1105": {
      "op": "DUP4"
    },
    "1106": {
      "op": "ADD"
    },
    "1107": {
      "op": "MSTORE"
    },
    "1108": {
      "op": "DUP2"
    },
    "1109": {
      "op": "ADD"
    },
    "1110": {
      "op": "DUP4"
    },
    "1111": {
      "op": "SWAP1"
    },
    "1112": {
      "op": "MSTORE"
    },
    "1113": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1115": {
      "op": "DUP2"
    },
    "1116": {
      "op": "ADD"
    },
    "1117": {
      "op": "DUP6"
    },
    "1118": {
      "op": "SWAP1"
    },
    "1119": {
      "op": "MSTORE"
    },
    "1120": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "1122": {
      "op": "ADD"
    },
    "1123": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "1125": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "MLOAD",
      "path": "52"
    },
    "1126": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "DUP1",
      "path": "52"
    },
    "1127": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "SWAP2",
      "path": "52"
    },
    "1128": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "SUB",
      "path": "52"
    },
    "1129": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "1130": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        2206,
        2333
      ],
      "op": "LOG1",
      "path": "52"
    },
    "1131": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1756,
        2340
      ],
      "op": "POP",
      "path": "52"
    },
    "1132": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1756,
        2340
      ],
      "op": "POP",
      "path": "52"
    },
    "1133": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "POP",
      "path": "52"
    },
    "1134": {
      "fn": "RewardHelper.setTargetRewardRate",
      "offset": [
        1652,
        2340
      ],
      "op": "POP",
      "path": "52"
    },
    "1135": {
      "fn": "RewardHelper.setTargetRewardRate",
      "jump": "o",
      "offset": [
        1652,
        2340
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1136": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1831,
        1932
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "1137": {
      "offset": [
        1094,
        1107
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x478"
    },
    "1140": {
      "offset": [
        1094,
        1105
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x7F8"
    },
    "1143": {
      "jump": "i",
      "offset": [
        1094,
        1107
      ],
      "op": "JUMP",
      "path": "6"
    },
    "1144": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1094,
        1107
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "1145": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1895,
        1925
      ],
      "op": "PUSH2",
      "path": "6",
      "statement": 15,
      "value": "0x482"
    },
    "1148": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1922,
        1923
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x0"
    },
    "1150": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1895,
        1913
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x852"
    },
    "1153": {
      "fn": "Ownable.renounceOwnership",
      "jump": "i",
      "offset": [
        1895,
        1925
      ],
      "op": "JUMP",
      "path": "6"
    },
    "1154": {
      "fn": "Ownable.renounceOwnership",
      "offset": [
        1895,
        1925
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "1155": {
      "fn": "Ownable.renounceOwnership",
      "jump": "o",
      "offset": [
        1831,
        1932
      ],
      "op": "JUMP",
      "path": "6"
    },
    "1156": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1157": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3019,
        3039
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "1159": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3055,
        3074
      ],
      "op": "DUP1",
      "path": "52"
    },
    "1160": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3077,
        3113
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x4A5"
    },
    "1163": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3077,
        3091
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x493"
    },
    "1166": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3082,
        3090
      ],
      "op": "DUP6",
      "path": "52"
    },
    "1167": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3077,
        3081
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x57A"
    },
    "1170": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "i",
      "offset": [
        3077,
        3091
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1171": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3077,
        3091
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1172": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3094,
        3113
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x4A0"
    },
    "1175": {
      "offset": [
        536,
        544
      ],
      "op": "PUSH4",
      "path": "52",
      "value": "0x1E13380"
    },
    "1180": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3094,
        3098
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x57A"
    },
    "1183": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "i",
      "offset": [
        3094,
        3113
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1184": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3094,
        3113
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1185": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3077,
        3113
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x8A2"
    },
    "1188": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "i",
      "offset": [
        3077,
        3113
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1189": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3077,
        3113
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1190": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3055,
        3113
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "1191": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3055,
        3113
      ],
      "op": "POP",
      "path": "52"
    },
    "1192": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3123,
        3144
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x0"
    },
    "1194": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3147,
        3166
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x4B3"
    },
    "1197": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3147,
        3151
      ],
      "op": "DUP5",
      "path": "52"
    },
    "1198": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3154,
        3166
      ],
      "op": "DUP4",
      "path": "52"
    },
    "1199": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3147,
        3166
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x906"
    },
    "1202": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "i",
      "offset": [
        3147,
        3166
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1203": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3147,
        3166
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1204": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3123,
        3166
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "1205": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3123,
        3166
      ],
      "op": "POP",
      "path": "52"
    },
    "1206": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3191,
        3226
      ],
      "op": "PUSH2",
      "path": "52",
      "statement": 16,
      "value": "0x4CA"
    },
    "1209": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3196,
        3225
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x24B"
    },
    "1212": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3196,
        3208
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x4C4"
    },
    "1215": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3201,
        3207
      ],
      "op": "DUP9",
      "path": "52"
    },
    "1216": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3196,
        3200
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x57A"
    },
    "1219": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "i",
      "offset": [
        3196,
        3208
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1220": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3196,
        3208
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1221": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3211,
        3225
      ],
      "op": "DUP4",
      "path": "52"
    },
    "1222": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3196,
        3225
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x906"
    },
    "1225": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "i",
      "offset": [
        3196,
        3225
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1226": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3191,
        3226
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1227": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        3176,
        3226
      ],
      "op": "SWAP7",
      "path": "52"
    },
    "1228": {
      "fn": "RewardHelper.calculateRewards",
      "offset": [
        2900,
        3233
      ],
      "op": "SWAP6",
      "path": "52"
    },
    "1229": {
      "op": "POP"
    },
    "1230": {
      "op": "POP"
    },
    "1231": {
      "op": "POP"
    },
    "1232": {
      "op": "POP"
    },
    "1233": {
      "op": "POP"
    },
    "1234": {
      "op": "POP"
    },
    "1235": {
      "fn": "RewardHelper.calculateRewards",
      "jump": "o",
      "offset": [
        2900,
        3233
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1236": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1237": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3146,
        3153
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1239": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3184,
        3199
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x2"
    },
    "1241": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3180
      ],
      "op": "DUP3",
      "path": "47"
    },
    "1242": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x2"
    },
    "1244": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "DUP2",
      "path": "47"
    },
    "1245": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "GT",
      "path": "47"
    },
    "1246": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "ISZERO",
      "path": "47"
    },
    "1247": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x4EA"
    },
    "1250": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "JUMPI",
      "path": "47"
    },
    "1251": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x4EA"
    },
    "1254": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xB54"
    },
    "1257": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        3172,
        3199
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1258": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1259": {
      "branch": 42,
      "fn": "UFixedType.ftoi",
      "offset": [
        3172,
        3199
      ],
      "op": "SUB",
      "path": "47"
    },
    "1260": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3169,
        3547
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x530"
    },
    "1263": {
      "branch": 42,
      "fn": "UFixedType.ftoi",
      "offset": [
        3169,
        3547
      ],
      "op": "JUMPI",
      "path": "47"
    },
    "1264": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3222,
        3304
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 17,
      "value": "0x529"
    },
    "1267": {
      "offset": [
        2315,
        2316
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x2"
    },
    "1269": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x500"
    },
    "1272": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1274": {
      "offset": [
        2228,
        2230
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0xA"
    },
    "1276": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xC8C"
    },
    "1279": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1280": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1281": {
      "offset": [
        2302,
        2316
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x50A"
    },
    "1284": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2302,
        2316
      ],
      "op": "SWAP2",
      "path": "47"
    },
    "1285": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2302,
        2316
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "1286": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2302,
        2316
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xCAE"
    },
    "1289": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        2302,
        2316
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1290": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2302,
        2316
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1291": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3234,
        3268
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x514"
    },
    "1294": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3234,
        3268
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "1295": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3248,
        3249
      ],
      "op": "DUP6",
      "path": "47"
    },
    "1296": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3234,
        3268
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xCD0"
    },
    "1299": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        3234,
        3268
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1300": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3234,
        3268
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1301": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3270,
        3271
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x1"
    },
    "1303": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x522"
    },
    "1306": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1308": {
      "offset": [
        2228,
        2230
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0xA"
    },
    "1310": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xC8C"
    },
    "1313": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1314": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1315": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3285,
        3303
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1317": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3222,
        3233
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x91B"
    },
    "1320": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        3222,
        3304
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1321": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3222,
        3304
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1322": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3215,
        3304
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "1323": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3215,
        3304
      ],
      "op": "POP",
      "path": "47"
    },
    "1324": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3215,
        3304
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x574"
    },
    "1327": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3215,
        3304
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1328": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3169,
        3547
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1329": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3336,
        3349
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1331": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3332
      ],
      "op": "DUP3",
      "path": "47"
    },
    "1332": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x2"
    },
    "1334": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "DUP2",
      "path": "47"
    },
    "1335": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "GT",
      "path": "47"
    },
    "1336": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "ISZERO",
      "path": "47"
    },
    "1337": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x544"
    },
    "1340": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "JUMPI",
      "path": "47"
    },
    "1341": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x544"
    },
    "1344": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xB54"
    },
    "1347": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        3324,
        3349
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1348": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1349": {
      "branch": 43,
      "fn": "UFixedType.ftoi",
      "offset": [
        3324,
        3349
      ],
      "op": "SUB",
      "path": "47"
    },
    "1350": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3321,
        3547
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x55B"
    },
    "1353": {
      "branch": 43,
      "fn": "UFixedType.ftoi",
      "offset": [
        3321,
        3547
      ],
      "op": "JUMPI",
      "path": "47"
    },
    "1354": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3372,
        3436
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 18,
      "value": "0x529"
    },
    "1357": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3398,
        3399
      ],
      "op": "DUP4",
      "path": "47"
    },
    "1358": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3402,
        3403
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x1"
    },
    "1360": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x522"
    },
    "1363": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1365": {
      "offset": [
        2228,
        2230
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0xA"
    },
    "1367": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xC8C"
    },
    "1370": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1371": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3321,
        3547
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1372": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3474,
        3536
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 19,
      "value": "0x529"
    },
    "1375": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3500,
        3501
      ],
      "op": "DUP4",
      "path": "47"
    },
    "1376": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3504,
        3505
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x1"
    },
    "1378": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x56D"
    },
    "1381": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1383": {
      "offset": [
        2228,
        2230
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0xA"
    },
    "1385": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xC8C"
    },
    "1388": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1389": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1390": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3519,
        3535
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x1"
    },
    "1392": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3474,
        3485
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x91B"
    },
    "1395": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        3474,
        3536
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1396": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3321,
        3547
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1397": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "SWAP3",
      "path": "47"
    },
    "1398": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "SWAP2",
      "path": "47"
    },
    "1399": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "POP",
      "path": "47"
    },
    "1400": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3059,
        3553
      ],
      "op": "POP",
      "path": "47"
    },
    "1401": {
      "fn": "UFixedType.ftoi",
      "jump": "o",
      "offset": [
        3059,
        3553
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1402": {
      "fn": "UFixedType.itof",
      "offset": [
        2482,
        2614
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1403": {
      "fn": "UFixedType.itof",
      "offset": [
        2551,
        2557
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1405": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x588"
    },
    "1408": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1410": {
      "offset": [
        2228,
        2230
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0xA"
    },
    "1412": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xC8C"
    },
    "1415": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1416": {
      "fn": "UFixedType.itof",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1417": {
      "fn": "UFixedType.itof",
      "offset": [
        2592,
        2606
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 20,
      "value": "0x574"
    },
    "1420": {
      "fn": "UFixedType.itof",
      "offset": [
        2592,
        2606
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "1421": {
      "fn": "UFixedType.itof",
      "offset": [
        2592,
        2593
      ],
      "op": "DUP4",
      "path": "47"
    },
    "1422": {
      "fn": "UFixedType.itof",
      "offset": [
        2592,
        2606
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xCE3"
    },
    "1425": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2592,
        2606
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1426": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1427": {
      "offset": [
        1094,
        1107
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x59A"
    },
    "1430": {
      "offset": [
        1094,
        1105
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x7F8"
    },
    "1433": {
      "jump": "i",
      "offset": [
        1094,
        1107
      ],
      "op": "JUMP",
      "path": "6"
    },
    "1434": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1094,
        1107
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "1435": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1407,
        1438
      ],
      "op": "PUSH2",
      "path": "52",
      "statement": 21,
      "value": "0x5A6"
    },
    "1438": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1407,
        1420
      ],
      "op": "DUP2",
      "path": "52"
    },
    "1439": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1424,
        1438
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x3"
    },
    "1441": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1424,
        1438
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "1442": {
      "op": "LT"
    },
    "1443": {
      "fn": "lteUFixed",
      "offset": [
        1545,
        1581
      ],
      "op": "ISZERO",
      "path": "47"
    },
    "1444": {
      "fn": "lteUFixed",
      "offset": [
        1545,
        1581
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "1445": {
      "fn": "lteUFixed",
      "offset": [
        1460,
        1584
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1446": {
      "branch": 39,
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1407,
        1438
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1447": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x601"
    },
    "1450": {
      "branch": 39,
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "JUMPI",
      "path": "52"
    },
    "1451": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "1453": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "MLOAD",
      "path": "52"
    },
    "1454": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1458": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1460": {
      "op": "SHL"
    },
    "1461": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "DUP2",
      "path": "52"
    },
    "1462": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "MSTORE",
      "path": "52"
    },
    "1463": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1465": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x4"
    },
    "1467": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "DUP3",
      "path": "52"
    },
    "1468": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "ADD",
      "path": "52"
    },
    "1469": {
      "op": "MSTORE"
    },
    "1470": {
      "op": "PUSH1",
      "value": "0x26"
    },
    "1472": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1474": {
      "op": "DUP3"
    },
    "1475": {
      "op": "ADD"
    },
    "1476": {
      "op": "MSTORE"
    },
    "1477": {
      "op": "PUSH32",
      "value": "0x4552524F523A5252482D3031303A5245574152445F455843454544535F4D4158"
    },
    "1510": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1512": {
      "op": "DUP3"
    },
    "1513": {
      "op": "ADD"
    },
    "1514": {
      "op": "MSTORE"
    },
    "1515": {
      "op": "PUSH6",
      "value": "0x5F56414C5545"
    },
    "1522": {
      "op": "PUSH1",
      "value": "0xD0"
    },
    "1524": {
      "op": "SHL"
    },
    "1525": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1527": {
      "op": "DUP3"
    },
    "1528": {
      "op": "ADD"
    },
    "1529": {
      "op": "MSTORE"
    },
    "1530": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1532": {
      "op": "ADD"
    },
    "1533": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x36B"
    },
    "1536": {
      "op": "JUMP"
    },
    "1537": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1399,
        1480
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1538": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1514,
        1525
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x2"
    },
    "1540": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1514,
        1525
      ],
      "op": "DUP1",
      "path": "52"
    },
    "1541": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1514,
        1525
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "1542": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1535,
        1562
      ],
      "op": "SWAP1",
      "path": "52",
      "statement": 22
    },
    "1543": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1535,
        1562
      ],
      "op": "DUP3",
      "path": "52"
    },
    "1544": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1535,
        1562
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "1545": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1535,
        1562
      ],
      "op": "SSTORE",
      "path": "52"
    },
    "1546": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "PUSH32",
      "path": "52",
      "statement": 23,
      "value": "0xCCFBE413BA62FF5EC59C9423134293D4731D2F2B29B72ED562C3846F2C4954E3"
    },
    "1579": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1602,
        1609
      ],
      "op": "PUSH2",
      "path": "52",
      "value": "0x63C"
    },
    "1582": {
      "fn": "Ownable.owner",
      "offset": [
        1247,
        1254
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x0"
    },
    "1584": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "SLOAD",
      "path": "6"
    },
    "1585": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1587": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1589": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1591": {
      "op": "SHL"
    },
    "1592": {
      "op": "SUB"
    },
    "1593": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "AND",
      "path": "6"
    },
    "1594": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "SWAP1",
      "path": "6"
    },
    "1595": {
      "fn": "Ownable.owner",
      "offset": [
        1201,
        1286
      ],
      "op": "JUMP",
      "path": "6"
    },
    "1596": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1602,
        1609
      ],
      "op": "JUMPDEST",
      "path": "52"
    },
    "1597": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1626,
        1637
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x2"
    },
    "1599": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1626,
        1637
      ],
      "op": "SLOAD",
      "path": "52"
    },
    "1600": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "1602": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "DUP1",
      "path": "52"
    },
    "1603": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "MLOAD",
      "path": "52"
    },
    "1604": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1606": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1608": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1610": {
      "op": "SHL"
    },
    "1611": {
      "op": "SUB"
    },
    "1612": {
      "op": "SWAP1"
    },
    "1613": {
      "op": "SWAP4"
    },
    "1614": {
      "op": "AND"
    },
    "1615": {
      "op": "DUP4"
    },
    "1616": {
      "op": "MSTORE"
    },
    "1617": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1619": {
      "op": "DUP4"
    },
    "1620": {
      "op": "ADD"
    },
    "1621": {
      "op": "DUP6"
    },
    "1622": {
      "op": "SWAP1"
    },
    "1623": {
      "op": "MSTORE"
    },
    "1624": {
      "op": "DUP3"
    },
    "1625": {
      "op": "ADD"
    },
    "1626": {
      "op": "MSTORE"
    },
    "1627": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1629": {
      "op": "ADD"
    },
    "1630": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "PUSH1",
      "path": "52",
      "value": "0x40"
    },
    "1632": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "MLOAD",
      "path": "52"
    },
    "1633": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "DUP1",
      "path": "52"
    },
    "1634": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "SWAP2",
      "path": "52"
    },
    "1635": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "SUB",
      "path": "52"
    },
    "1636": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "SWAP1",
      "path": "52"
    },
    "1637": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1578,
        1638
      ],
      "op": "LOG1",
      "path": "52"
    },
    "1638": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1389,
        1645
      ],
      "op": "POP",
      "path": "52"
    },
    "1639": {
      "fn": "RewardHelper.setRewardRate",
      "offset": [
        1305,
        1645
      ],
      "op": "POP",
      "path": "52"
    },
    "1640": {
      "fn": "RewardHelper.setRewardRate",
      "jump": "o",
      "offset": [
        1305,
        1645
      ],
      "op": "JUMP",
      "path": "52"
    },
    "1641": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2923,
        3053
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1642": {
      "fn": "UFixedType.ftoi",
      "offset": [
        2991,
        2998
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1644": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3021,
        3046
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 24,
      "value": "0x574"
    },
    "1647": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3026,
        3027
      ],
      "op": "DUP3",
      "path": "47"
    },
    "1648": {
      "offset": [
        2371,
        2386
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x2"
    },
    "1650": {
      "fn": "UFixedType.ftoi",
      "offset": [
        3021,
        3025
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x4D4"
    },
    "1653": {
      "fn": "UFixedType.ftoi",
      "jump": "i",
      "offset": [
        3021,
        3046
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1654": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1655": {
      "fn": "UFixedType.itof",
      "offset": [
        2699,
        2705
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1657": {
      "fn": "UFixedType.itof",
      "offset": [
        2699,
        2705
      ],
      "op": "DUP1",
      "path": "47"
    },
    "1658": {
      "fn": "UFixedType.itof",
      "offset": [
        2729,
        2738
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 25,
      "value": "0x684"
    },
    "1661": {
      "fn": "UFixedType.itof",
      "offset": [
        2735,
        2738
      ],
      "op": "DUP4",
      "path": "47"
    },
    "1662": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1664": {
      "fn": "UFixedType.itof",
      "offset": [
        2729,
        2738
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xCFA"
    },
    "1667": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2729,
        2738
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1668": {
      "fn": "UFixedType.itof",
      "offset": [
        2729,
        2738
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1669": {
      "fn": "UFixedType.itof",
      "offset": [
        2729,
        2743
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1671": {
      "fn": "UFixedType.itof",
      "offset": [
        2729,
        2743
      ],
      "op": "SIGNEXTEND",
      "path": "47"
    },
    "1672": {
      "fn": "UFixedType.itof",
      "offset": [
        2729,
        2743
      ],
      "op": "SLT",
      "path": "47"
    },
    "1673": {
      "branch": 44,
      "fn": "UFixedType.itof",
      "offset": [
        2729,
        2743
      ],
      "op": "ISZERO",
      "path": "47"
    },
    "1674": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x6D5"
    },
    "1677": {
      "branch": 44,
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "JUMPI",
      "path": "47"
    },
    "1678": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x40"
    },
    "1680": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "MLOAD",
      "path": "47"
    },
    "1681": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1685": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1687": {
      "op": "SHL"
    },
    "1688": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "DUP2",
      "path": "47"
    },
    "1689": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "MSTORE",
      "path": "47"
    },
    "1690": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1692": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x4"
    },
    "1694": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "DUP3",
      "path": "47"
    },
    "1695": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "ADD",
      "path": "47"
    },
    "1696": {
      "op": "MSTORE"
    },
    "1697": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1699": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1701": {
      "op": "DUP3"
    },
    "1702": {
      "op": "ADD"
    },
    "1703": {
      "op": "MSTORE"
    },
    "1704": {
      "op": "PUSH32",
      "value": "0x4552524F523A464D2D3031303A4558504F4E454E545F544F4F5F534D414C4C00"
    },
    "1737": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1739": {
      "op": "DUP3"
    },
    "1740": {
      "op": "ADD"
    },
    "1741": {
      "op": "MSTORE"
    },
    "1742": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1744": {
      "op": "ADD"
    },
    "1745": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x36B"
    },
    "1748": {
      "op": "JUMP"
    },
    "1749": {
      "fn": "UFixedType.itof",
      "offset": [
        2721,
        2779
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1750": {
      "fn": "UFixedType.itof",
      "offset": [
        2810,
        2817
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 26,
      "value": "0x6E1"
    },
    "1753": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1755": {
      "fn": "UFixedType.itof",
      "offset": [
        2810,
        2811
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x2"
    },
    "1757": {
      "fn": "UFixedType.itof",
      "offset": [
        2810,
        2817
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xD1B"
    },
    "1760": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2810,
        2817
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1761": {
      "fn": "UFixedType.itof",
      "offset": [
        2810,
        2817
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1762": {
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2817
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1764": {
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2817
      ],
      "op": "SIGNEXTEND",
      "path": "47"
    },
    "1765": {
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2806
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x6EF"
    },
    "1768": {
      "fn": "UFixedType.itof",
      "offset": [
        2803,
        2806
      ],
      "op": "DUP4",
      "path": "47"
    },
    "1769": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1771": {
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2806
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xCFA"
    },
    "1774": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2797,
        2806
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1775": {
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2806
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1776": {
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2817
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "1778": {
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2817
      ],
      "op": "SIGNEXTEND",
      "path": "47"
    },
    "1779": {
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2817
      ],
      "op": "SGT",
      "path": "47"
    },
    "1780": {
      "branch": 45,
      "fn": "UFixedType.itof",
      "offset": [
        2797,
        2817
      ],
      "op": "ISZERO",
      "path": "47"
    },
    "1781": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x740"
    },
    "1784": {
      "branch": 45,
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "JUMPI",
      "path": "47"
    },
    "1785": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x40"
    },
    "1787": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "MLOAD",
      "path": "47"
    },
    "1788": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1792": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1794": {
      "op": "SHL"
    },
    "1795": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "DUP2",
      "path": "47"
    },
    "1796": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "MSTORE",
      "path": "47"
    },
    "1797": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1799": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x4"
    },
    "1801": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "DUP3",
      "path": "47"
    },
    "1802": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "ADD",
      "path": "47"
    },
    "1803": {
      "op": "MSTORE"
    },
    "1804": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1806": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1808": {
      "op": "DUP3"
    },
    "1809": {
      "op": "ADD"
    },
    "1810": {
      "op": "MSTORE"
    },
    "1811": {
      "op": "PUSH32",
      "value": "0x4552524F523A464D2D3031313A4558504F4E454E545F544F4F5F4C4152474500"
    },
    "1844": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1846": {
      "op": "DUP3"
    },
    "1847": {
      "op": "ADD"
    },
    "1848": {
      "op": "MSTORE"
    },
    "1849": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1851": {
      "op": "ADD"
    },
    "1852": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x36B"
    },
    "1855": {
      "op": "JUMP"
    },
    "1856": {
      "fn": "UFixedType.itof",
      "offset": [
        2789,
        2853
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1857": {
      "fn": "UFixedType.itof",
      "offset": [
        2899,
        2908
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 27,
      "value": "0x74B"
    },
    "1860": {
      "fn": "UFixedType.itof",
      "offset": [
        2905,
        2908
      ],
      "op": "DUP3",
      "path": "47"
    },
    "1861": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1863": {
      "fn": "UFixedType.itof",
      "offset": [
        2899,
        2908
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xCFA"
    },
    "1866": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2899,
        2908
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1867": {
      "fn": "UFixedType.itof",
      "offset": [
        2899,
        2908
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1868": {
      "fn": "UFixedType.itof",
      "offset": [
        2887,
        2909
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x756"
    },
    "1871": {
      "fn": "UFixedType.itof",
      "offset": [
        2887,
        2909
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "1872": {
      "fn": "UFixedType.itof",
      "offset": [
        2887,
        2889
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0xA"
    },
    "1874": {
      "fn": "UFixedType.itof",
      "offset": [
        2887,
        2909
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xD42"
    },
    "1877": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2887,
        2909
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1878": {
      "fn": "UFixedType.itof",
      "offset": [
        2887,
        2909
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1879": {
      "fn": "UFixedType.itof",
      "offset": [
        2883,
        2909
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x760"
    },
    "1882": {
      "fn": "UFixedType.itof",
      "offset": [
        2883,
        2909
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "1883": {
      "fn": "UFixedType.itof",
      "offset": [
        2883,
        2884
      ],
      "op": "DUP5",
      "path": "47"
    },
    "1884": {
      "fn": "UFixedType.itof",
      "offset": [
        2883,
        2909
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xCE3"
    },
    "1887": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2883,
        2909
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1888": {
      "fn": "UFixedType.itof",
      "offset": [
        2883,
        2909
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1889": {
      "fn": "UFixedType.itof",
      "offset": [
        2864,
        2910
      ],
      "op": "SWAP4",
      "path": "47"
    },
    "1890": {
      "fn": "UFixedType.itof",
      "offset": [
        2620,
        2917
      ],
      "op": "SWAP3",
      "path": "47"
    },
    "1891": {
      "op": "POP"
    },
    "1892": {
      "op": "POP"
    },
    "1893": {
      "op": "POP"
    },
    "1894": {
      "fn": "UFixedType.itof",
      "jump": "o",
      "offset": [
        2620,
        2917
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1895": {
      "offset": [
        2260,
        2316
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1896": {
      "offset": [
        2315,
        2316
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x2"
    },
    "1898": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x775"
    },
    "1901": {
      "offset": [
        2183,
        2185
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x12"
    },
    "1903": {
      "offset": [
        2228,
        2230
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0xA"
    },
    "1905": {
      "offset": [
        2228,
        2254
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xC8C"
    },
    "1908": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1909": {
      "fn": "UFixedType.itof",
      "offset": [
        2228,
        2254
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "1910": {
      "offset": [
        2302,
        2316
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x29F"
    },
    "1913": {
      "fn": "UFixedType.itof",
      "offset": [
        2302,
        2316
      ],
      "op": "SWAP2",
      "path": "47"
    },
    "1914": {
      "fn": "UFixedType.itof",
      "offset": [
        2302,
        2316
      ],
      "op": "SWAP1",
      "path": "47"
    },
    "1915": {
      "fn": "UFixedType.itof",
      "offset": [
        2302,
        2316
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0xCAE"
    },
    "1918": {
      "fn": "UFixedType.itof",
      "jump": "i",
      "offset": [
        2302,
        2316
      ],
      "op": "JUMP",
      "path": "47"
    },
    "1919": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "1920": {
      "offset": [
        1094,
        1107
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x787"
    },
    "1923": {
      "offset": [
        1094,
        1105
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x7F8"
    },
    "1926": {
      "jump": "i",
      "offset": [
        1094,
        1107
      ],
      "op": "JUMP",
      "path": "6"
    },
    "1927": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        1094,
        1107
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "1928": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1930": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1932": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1934": {
      "op": "SHL"
    },
    "1935": {
      "op": "SUB"
    },
    "1936": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2169,
        2191
      ],
      "op": "DUP2",
      "path": "6",
      "statement": 28
    },
    "1937": {
      "branch": 40,
      "fn": "Ownable.transferOwnership",
      "offset": [
        2169,
        2191
      ],
      "op": "AND",
      "path": "6"
    },
    "1938": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x7EC"
    },
    "1941": {
      "branch": 40,
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "JUMPI",
      "path": "6"
    },
    "1942": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x40"
    },
    "1944": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "MLOAD",
      "path": "6"
    },
    "1945": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1949": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1951": {
      "op": "SHL"
    },
    "1952": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "DUP2",
      "path": "6"
    },
    "1953": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "MSTORE",
      "path": "6"
    },
    "1954": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1956": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x4"
    },
    "1958": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "DUP3",
      "path": "6"
    },
    "1959": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "ADD",
      "path": "6"
    },
    "1960": {
      "op": "MSTORE"
    },
    "1961": {
      "op": "PUSH1",
      "value": "0x26"
    },
    "1963": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1965": {
      "op": "DUP3"
    },
    "1966": {
      "op": "ADD"
    },
    "1967": {
      "op": "MSTORE"
    },
    "1968": {
      "op": "PUSH32",
      "value": "0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061"
    },
    "2001": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "2003": {
      "op": "DUP3"
    },
    "2004": {
      "op": "ADD"
    },
    "2005": {
      "op": "MSTORE"
    },
    "2006": {
      "op": "PUSH6",
      "value": "0x646472657373"
    },
    "2013": {
      "op": "PUSH1",
      "value": "0xD0"
    },
    "2015": {
      "op": "SHL"
    },
    "2016": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "2018": {
      "op": "DUP3"
    },
    "2019": {
      "op": "ADD"
    },
    "2020": {
      "op": "MSTORE"
    },
    "2021": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "2023": {
      "op": "ADD"
    },
    "2024": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x36B"
    },
    "2027": {
      "op": "JUMP"
    },
    "2028": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2161,
        2234
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "2029": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2244,
        2272
      ],
      "op": "PUSH2",
      "path": "6",
      "statement": 29,
      "value": "0x7F5"
    },
    "2032": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2263,
        2271
      ],
      "op": "DUP2",
      "path": "6"
    },
    "2033": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2244,
        2262
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x852"
    },
    "2036": {
      "fn": "Ownable.transferOwnership",
      "jump": "i",
      "offset": [
        2244,
        2272
      ],
      "op": "JUMP",
      "path": "6"
    },
    "2037": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2244,
        2272
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "2038": {
      "fn": "Ownable.transferOwnership",
      "offset": [
        2081,
        2279
      ],
      "op": "POP",
      "path": "6"
    },
    "2039": {
      "fn": "Ownable.transferOwnership",
      "jump": "o",
      "offset": [
        2081,
        2279
      ],
      "op": "JUMP",
      "path": "6"
    },
    "2040": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1359,
        1489
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "2041": {
      "fn": "Ownable.owner",
      "offset": [
        1247,
        1254
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x0"
    },
    "2043": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "SLOAD",
      "path": "6"
    },
    "2044": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2046": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2048": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2050": {
      "op": "SHL"
    },
    "2051": {
      "op": "SUB"
    },
    "2052": {
      "fn": "Ownable.owner",
      "offset": [
        1273,
        1279
      ],
      "op": "AND",
      "path": "6"
    },
    "2053": {
      "fn": "Context._msgSender",
      "offset": [
        719,
        729
      ],
      "op": "CALLER",
      "path": "23",
      "statement": 30
    },
    "2054": {
      "branch": 41,
      "fn": "Ownable._checkOwner",
      "offset": [
        1422,
        1445
      ],
      "op": "EQ",
      "path": "6",
      "statement": 31
    },
    "2055": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x482"
    },
    "2058": {
      "branch": 41,
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "JUMPI",
      "path": "6"
    },
    "2059": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x40"
    },
    "2061": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "MLOAD",
      "path": "6"
    },
    "2062": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "2066": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "2068": {
      "op": "SHL"
    },
    "2069": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "DUP2",
      "path": "6"
    },
    "2070": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "MSTORE",
      "path": "6"
    },
    "2071": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2073": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x4"
    },
    "2075": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "DUP3",
      "path": "6"
    },
    "2076": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "ADD",
      "path": "6"
    },
    "2077": {
      "op": "DUP2"
    },
    "2078": {
      "op": "SWAP1"
    },
    "2079": {
      "op": "MSTORE"
    },
    "2080": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2082": {
      "op": "DUP3"
    },
    "2083": {
      "op": "ADD"
    },
    "2084": {
      "op": "MSTORE"
    },
    "2085": {
      "op": "PUSH32",
      "value": "0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572"
    },
    "2118": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "2120": {
      "op": "DUP3"
    },
    "2121": {
      "op": "ADD"
    },
    "2122": {
      "op": "MSTORE"
    },
    "2123": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "2125": {
      "op": "ADD"
    },
    "2126": {
      "fn": "Ownable._checkOwner",
      "offset": [
        1414,
        1482
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x36B"
    },
    "2129": {
      "op": "JUMP"
    },
    "2130": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2433,
        2620
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "2131": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2506,
        2522
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x0"
    },
    "2133": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "DUP1",
      "path": "6"
    },
    "2134": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "SLOAD",
      "path": "6"
    },
    "2135": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2137": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2139": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2141": {
      "op": "SHL"
    },
    "2142": {
      "op": "SUB"
    },
    "2143": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "DUP4",
      "path": "6",
      "statement": 32
    },
    "2144": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "DUP2",
      "path": "6"
    },
    "2145": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "AND",
      "path": "6"
    },
    "2146": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2148": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2150": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2152": {
      "op": "SHL"
    },
    "2153": {
      "op": "SUB"
    },
    "2154": {
      "op": "NOT"
    },
    "2155": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "DUP4",
      "path": "6"
    },
    "2156": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "AND",
      "path": "6"
    },
    "2157": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "DUP2",
      "path": "6"
    },
    "2158": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "OR",
      "path": "6"
    },
    "2159": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "DUP5",
      "path": "6"
    },
    "2160": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2541,
        2558
      ],
      "op": "SSTORE",
      "path": "6"
    },
    "2161": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2573,
        2613
      ],
      "op": "PUSH1",
      "path": "6",
      "statement": 33,
      "value": "0x40"
    },
    "2163": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2573,
        2613
      ],
      "op": "MLOAD",
      "path": "6"
    },
    "2164": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "SWAP2",
      "path": "6"
    },
    "2165": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "SWAP1",
      "path": "6"
    },
    "2166": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "SWAP3",
      "path": "6"
    },
    "2167": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "AND",
      "path": "6"
    },
    "2168": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "SWAP3",
      "path": "6"
    },
    "2169": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "DUP4",
      "path": "6"
    },
    "2170": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2525,
        2531
      ],
      "op": "SWAP2",
      "path": "6"
    },
    "2171": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2573,
        2613
      ],
      "op": "PUSH32",
      "path": "6",
      "value": "0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0"
    },
    "2204": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2573,
        2613
      ],
      "op": "SWAP2",
      "path": "6"
    },
    "2205": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2506,
        2522
      ],
      "op": "SWAP1",
      "path": "6"
    },
    "2206": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2573,
        2613
      ],
      "op": "LOG3",
      "path": "6"
    },
    "2207": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2496,
        2620
      ],
      "op": "POP",
      "path": "6"
    },
    "2208": {
      "fn": "Ownable._transferOwnership",
      "offset": [
        2433,
        2620
      ],
      "op": "POP",
      "path": "6"
    },
    "2209": {
      "fn": "Ownable._transferOwnership",
      "jump": "o",
      "offset": [
        2433,
        2620
      ],
      "op": "JUMP",
      "path": "6"
    },
    "2210": {
      "fn": "divUFixed",
      "offset": [
        825,
        1084
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "2211": {
      "fn": "divUFixed",
      "offset": [
        877,
        883
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "2213": {
      "fn": "divUFixed",
      "offset": [
        918,
        919
      ],
      "op": "DUP1",
      "path": "47",
      "statement": 34
    },
    "2214": {
      "fn": "divUFixed",
      "offset": [
        913,
        914
      ],
      "op": "DUP3",
      "path": "47"
    },
    "2215": {
      "fn": "divUFixed",
      "offset": [
        899,
        919
      ],
      "op": "GT",
      "path": "47"
    },
    "2216": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x8F3"
    },
    "2219": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "JUMPI",
      "path": "47"
    },
    "2220": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x40"
    },
    "2222": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "MLOAD",
      "path": "47"
    },
    "2223": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "2227": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "2229": {
      "op": "SHL"
    },
    "2230": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "DUP2",
      "path": "47"
    },
    "2231": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "MSTORE",
      "path": "47"
    },
    "2232": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2234": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x4"
    },
    "2236": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "DUP3",
      "path": "47"
    },
    "2237": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "ADD",
      "path": "47"
    },
    "2238": {
      "op": "MSTORE"
    },
    "2239": {
      "op": "PUSH1",
      "value": "0x1A"
    },
    "2241": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2243": {
      "op": "DUP3"
    },
    "2244": {
      "op": "ADD"
    },
    "2245": {
      "op": "MSTORE"
    },
    "2246": {
      "op": "PUSH32",
      "value": "0x4552524F523A55464D2D3032303A44495649534F525F5A45524F000000000000"
    },
    "2279": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "2281": {
      "op": "DUP3"
    },
    "2282": {
      "op": "ADD"
    },
    "2283": {
      "op": "MSTORE"
    },
    "2284": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "2286": {
      "op": "ADD"
    },
    "2287": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x36B"
    },
    "2290": {
      "op": "JUMP"
    },
    "2291": {
      "fn": "divUFixed",
      "offset": [
        891,
        950
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "2292": {
      "fn": "divUFixed",
      "offset": [
        985,
        1080
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 35,
      "value": "0x760"
    },
    "2295": {
      "fn": "divUFixed",
      "offset": [
        1024,
        1025
      ],
      "op": "DUP4",
      "path": "47"
    },
    "2296": {
      "fn": "divUFixed",
      "offset": [
        1041,
        1049
      ],
      "op": "PUSH8",
      "path": "47",
      "value": "0xDE0B6B3A7640000"
    },
    "2305": {
      "fn": "divUFixed",
      "offset": [
        1077,
        1078
      ],
      "op": "DUP5",
      "path": "47"
    },
    "2306": {
      "fn": "divUFixed",
      "offset": [
        985,
        996
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x978"
    },
    "2309": {
      "fn": "divUFixed",
      "jump": "i",
      "offset": [
        985,
        1080
      ],
      "op": "JUMP",
      "path": "47"
    },
    "2310": {
      "fn": "mulUFixed",
      "offset": [
        677,
        823
      ],
      "op": "JUMPDEST",
      "path": "47"
    },
    "2311": {
      "fn": "mulUFixed",
      "offset": [
        729,
        735
      ],
      "op": "PUSH1",
      "path": "47",
      "value": "0x0"
    },
    "2313": {
      "fn": "mulUFixed",
      "offset": [
        762,
        819
      ],
      "op": "PUSH2",
      "path": "47",
      "statement": 36,
      "value": "0x760"
    },
    "2316": {
      "fn": "mulUFixed",
      "offset": [
        788,
        789
      ],
      "op": "DUP4",
      "path": "47"
    },
    "2317": {
      "fn": "mulUFixed",
      "offset": [
        806,
        807
      ],
      "op": "DUP4",
      "path": "47"
    },
    "2318": {
      "fn": "mulUFixed",
      "offset": [
        810,
        818
      ],
      "op": "PUSH8",
      "path": "47",
      "value": "0xDE0B6B3A7640000"
    },
    "2327": {
      "fn": "mulUFixed",
      "offset": [
        762,
        773
      ],
      "op": "PUSH2",
      "path": "47",
      "value": "0x978"
    },
    "2330": {
      "fn": "mulUFixed",
      "jump": "i",
      "offset": [
        762,
        819
      ],
      "op": "JUMP",
      "path": "47"
    },
    "2331": {
      "op": "JUMPDEST"
    },
    "2332": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2334": {
      "op": "DUP1"
    },
    "2335": {
      "op": "PUSH2",
      "value": "0x929"
    },
    "2338": {
      "op": "DUP7"
    },
    "2339": {
      "op": "DUP7"
    },
    "2340": {
      "op": "DUP7"
    },
    "2341": {
      "op": "PUSH2",
      "value": "0x978"
    },
    "2344": {
      "jump": "i",
      "op": "JUMP"
    },
    "2345": {
      "op": "JUMPDEST"
    },
    "2346": {
      "op": "SWAP1"
    },
    "2347": {
      "op": "POP"
    },
    "2348": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2350": {
      "op": "DUP4"
    },
    "2351": {
      "op": "PUSH1",
      "value": "0x2"
    },
    "2353": {
      "op": "DUP2"
    },
    "2354": {
      "op": "GT"
    },
    "2355": {
      "op": "ISZERO"
    },
    "2356": {
      "op": "PUSH2",
      "value": "0x93F"
    },
    "2359": {
      "op": "JUMPI"
    },
    "2360": {
      "op": "PUSH2",
      "value": "0x93F"
    },
    "2363": {
      "op": "PUSH2",
      "value": "0xB54"
    },
    "2366": {
      "jump": "i",
      "op": "JUMP"
    },
    "2367": {
      "op": "JUMPDEST"
    },
    "2368": {
      "op": "EQ"
    },
    "2369": {
      "op": "DUP1"
    },
    "2370": {
      "op": "ISZERO"
    },
    "2371": {
      "op": "PUSH2",
      "value": "0x95C"
    },
    "2374": {
      "op": "JUMPI"
    },
    "2375": {
      "op": "POP"
    },
    "2376": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2378": {
      "op": "DUP5"
    },
    "2379": {
      "op": "DUP1"
    },
    "2380": {
      "op": "PUSH2",
      "value": "0x957"
    },
    "2383": {
      "op": "JUMPI"
    },
    "2384": {
      "op": "PUSH2",
      "value": "0x957"
    },
    "2387": {
      "op": "PUSH2",
      "value": "0xC98"
    },
    "2390": {
      "jump": "i",
      "op": "JUMP"
    },
    "2391": {
      "op": "JUMPDEST"
    },
    "2392": {
      "op": "DUP7"
    },
    "2393": {
      "op": "DUP9"
    },
    "2394": {
      "op": "MULMOD"
    },
    "2395": {
      "op": "GT"
    },
    "2396": {
      "op": "JUMPDEST"
    },
    "2397": {
      "op": "ISZERO"
    },
    "2398": {
      "op": "PUSH2",
      "value": "0x96F"
    },
    "2401": {
      "op": "JUMPI"
    },
    "2402": {
      "op": "PUSH2",
      "value": "0x96C"
    },
    "2405": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2407": {
      "op": "DUP3"
    },
    "2408": {
      "op": "PUSH2",
      "value": "0xCD0"
    },
    "2411": {
      "jump": "i",
      "op": "JUMP"
    },
    "2412": {
      "op": "JUMPDEST"
    },
    "2413": {
      "op": "SWAP1"
    },
    "2414": {
      "op": "POP"
    },
    "2415": {
      "op": "JUMPDEST"
    },
    "2416": {
      "op": "SWAP6"
    },
    "2417": {
      "op": "SWAP5"
    },
    "2418": {
      "op": "POP"
    },
    "2419": {
      "op": "POP"
    },
    "2420": {
      "op": "POP"
    },
    "2421": {
      "op": "POP"
    },
    "2422": {
      "op": "POP"
    },
    "2423": {
      "jump": "o",
      "op": "JUMP"
    },
    "2424": {
      "op": "JUMPDEST"
    },
    "2425": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2427": {
      "op": "DUP1"
    },
    "2428": {
      "op": "DUP1"
    },
    "2429": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2431": {
      "op": "NOT"
    },
    "2432": {
      "op": "DUP6"
    },
    "2433": {
      "op": "DUP8"
    },
    "2434": {
      "op": "MULMOD"
    },
    "2435": {
      "op": "DUP6"
    },
    "2436": {
      "op": "DUP8"
    },
    "2437": {
      "op": "MUL"
    },
    "2438": {
      "op": "SWAP3"
    },
    "2439": {
      "op": "POP"
    },
    "2440": {
      "op": "DUP3"
    },
    "2441": {
      "op": "DUP2"
    },
    "2442": {
      "op": "LT"
    },
    "2443": {
      "op": "DUP4"
    },
    "2444": {
      "op": "DUP3"
    },
    "2445": {
      "op": "SUB"
    },
    "2446": {
      "op": "SUB"
    },
    "2447": {
      "op": "SWAP2"
    },
    "2448": {
      "op": "POP"
    },
    "2449": {
      "op": "POP"
    },
    "2450": {
      "op": "DUP1"
    },
    "2451": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2453": {
      "op": "SUB"
    },
    "2454": {
      "op": "PUSH2",
      "value": "0x9B2"
    },
    "2457": {
      "op": "JUMPI"
    },
    "2458": {
      "op": "DUP4"
    },
    "2459": {
      "op": "DUP3"
    },
    "2460": {
      "op": "DUP2"
    },
    "2461": {
      "op": "PUSH2",
      "value": "0x9A8"
    },
    "2464": {
      "op": "JUMPI"
    },
    "2465": {
      "op": "PUSH2",
      "value": "0x9A8"
    },
    "2468": {
      "op": "PUSH2",
      "value": "0xC98"
    },
    "2471": {
      "jump": "i",
      "op": "JUMP"
    },
    "2472": {
      "op": "JUMPDEST"
    },
    "2473": {
      "op": "DIV"
    },
    "2474": {
      "op": "SWAP3"
    },
    "2475": {
      "op": "POP"
    },
    "2476": {
      "op": "POP"
    },
    "2477": {
      "op": "POP"
    },
    "2478": {
      "op": "PUSH2",
      "value": "0x760"
    },
    "2481": {
      "op": "JUMP"
    },
    "2482": {
      "op": "JUMPDEST"
    },
    "2483": {
      "op": "DUP1"
    },
    "2484": {
      "op": "DUP5"
    },
    "2485": {
      "op": "GT"
    },
    "2486": {
      "op": "PUSH2",
      "value": "0x9BE"
    },
    "2489": {
      "op": "JUMPI"
    },
    "2490": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2492": {
      "op": "DUP1"
    },
    "2493": {
      "op": "REVERT"
    },
    "2494": {
      "op": "JUMPDEST"
    },
    "2495": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2497": {
      "op": "DUP5"
    },
    "2498": {
      "op": "DUP7"
    },
    "2499": {
      "op": "DUP9"
    },
    "2500": {
      "op": "MULMOD"
    },
    "2501": {
      "op": "PUSH1",
      "value": "0x2"
    },
    "2503": {
      "op": "PUSH1",
      "value": "0x3"
    },
    "2505": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2507": {
      "op": "DUP9"
    },
    "2508": {
      "op": "NOT"
    },
    "2509": {
      "op": "DUP2"
    },
    "2510": {
      "op": "ADD"
    },
    "2511": {
      "op": "DUP10"
    },
    "2512": {
      "op": "AND"
    },
    "2513": {
      "op": "SWAP9"
    },
    "2514": {
      "op": "DUP10"
    },
    "2515": {
      "op": "SWAP1"
    },
    "2516": {
      "op": "DIV"
    },
    "2517": {
      "op": "SWAP2"
    },
    "2518": {
      "op": "DUP3"
    },
    "2519": {
      "op": "MUL"
    },
    "2520": {
      "op": "DUP4"
    },
    "2521": {
      "op": "XOR"
    },
    "2522": {
      "op": "DUP1"
    },
    "2523": {
      "op": "DUP4"
    },
    "2524": {
      "op": "MUL"
    },
    "2525": {
      "op": "DUP5"
    },
    "2526": {
      "op": "SUB"
    },
    "2527": {
      "op": "MUL"
    },
    "2528": {
      "op": "DUP1"
    },
    "2529": {
      "op": "DUP4"
    },
    "2530": {
      "op": "MUL"
    },
    "2531": {
      "op": "DUP5"
    },
    "2532": {
      "op": "SUB"
    },
    "2533": {
      "op": "MUL"
    },
    "2534": {
      "op": "DUP1"
    },
    "2535": {
      "op": "DUP4"
    },
    "2536": {
      "op": "MUL"
    },
    "2537": {
      "op": "DUP5"
    },
    "2538": {
      "op": "SUB"
    },
    "2539": {
      "op": "MUL"
    },
    "2540": {
      "op": "DUP1"
    },
    "2541": {
      "op": "DUP4"
    },
    "2542": {
      "op": "MUL"
    },
    "2543": {
      "op": "DUP5"
    },
    "2544": {
      "op": "SUB"
    },
    "2545": {
      "op": "MUL"
    },
    "2546": {
      "op": "DUP1"
    },
    "2547": {
      "op": "DUP4"
    },
    "2548": {
      "op": "MUL"
    },
    "2549": {
      "op": "DUP5"
    },
    "2550": {
      "op": "SUB"
    },
    "2551": {
      "op": "MUL"
    },
    "2552": {
      "op": "SWAP2"
    },
    "2553": {
      "op": "DUP3"
    },
    "2554": {
      "op": "MUL"
    },
    "2555": {
      "op": "SWAP1"
    },
    "2556": {
      "op": "SWAP3"
    },
    "2557": {
      "op": "SUB"
    },
    "2558": {
      "op": "MUL"
    },
    "2559": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2561": {
      "op": "DUP9"
    },
    "2562": {
      "op": "SWAP1"
    },
    "2563": {
      "op": "SUB"
    },
    "2564": {
      "op": "DUP9"
    },
    "2565": {
      "op": "SWAP1"
    },
    "2566": {
      "op": "DIV"
    },
    "2567": {
      "op": "SWAP1"
    },
    "2568": {
      "op": "SWAP2"
    },
    "2569": {
      "op": "ADD"
    },
    "2570": {
      "op": "DUP6"
    },
    "2571": {
      "op": "DUP4"
    },
    "2572": {
      "op": "GT"
    },
    "2573": {
      "op": "SWAP1"
    },
    "2574": {
      "op": "SWAP5"
    },
    "2575": {
      "op": "SUB"
    },
    "2576": {
      "op": "SWAP4"
    },
    "2577": {
      "op": "SWAP1"
    },
    "2578": {
      "op": "SWAP4"
    },
    "2579": {
      "op": "MUL"
    },
    "2580": {
      "op": "SWAP4"
    },
    "2581": {
      "op": "SUB"
    },
    "2582": {
      "op": "SWAP5"
    },
    "2583": {
      "op": "SWAP1"
    },
    "2584": {
      "op": "SWAP5"
    },
    "2585": {
      "op": "DIV"
    },
    "2586": {
      "op": "SWAP2"
    },
    "2587": {
      "op": "SWAP1"
    },
    "2588": {
      "op": "SWAP2"
    },
    "2589": {
      "op": "OR"
    },
    "2590": {
      "op": "MUL"
    },
    "2591": {
      "op": "SWAP5"
    },
    "2592": {
      "op": "SWAP4"
    },
    "2593": {
      "op": "POP"
    },
    "2594": {
      "op": "POP"
    },
    "2595": {
      "op": "POP"
    },
    "2596": {
      "op": "POP"
    },
    "2597": {
      "jump": "o",
      "op": "JUMP"
    },
    "2598": {
      "op": "JUMPDEST"
    },
    "2599": {
      "op": "DUP1"
    },
    "2600": {
      "op": "CALLDATALOAD"
    },
    "2601": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2603": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2605": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2607": {
      "op": "SHL"
    },
    "2608": {
      "op": "SUB"
    },
    "2609": {
      "op": "DUP2"
    },
    "2610": {
      "op": "AND"
    },
    "2611": {
      "op": "DUP2"
    },
    "2612": {
      "op": "EQ"
    },
    "2613": {
      "op": "PUSH2",
      "value": "0xA3D"
    },
    "2616": {
      "op": "JUMPI"
    },
    "2617": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2619": {
      "op": "DUP1"
    },
    "2620": {
      "op": "REVERT"
    },
    "2621": {
      "op": "JUMPDEST"
    },
    "2622": {
      "op": "SWAP2"
    },
    "2623": {
      "op": "SWAP1"
    },
    "2624": {
      "op": "POP"
    },
    "2625": {
      "jump": "o",
      "op": "JUMP"
    },
    "2626": {
      "op": "JUMPDEST"
    },
    "2627": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2629": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2631": {
      "op": "DUP3"
    },
    "2632": {
      "op": "DUP5"
    },
    "2633": {
      "op": "SUB"
    },
    "2634": {
      "op": "SLT"
    },
    "2635": {
      "op": "ISZERO"
    },
    "2636": {
      "op": "PUSH2",
      "value": "0xA54"
    },
    "2639": {
      "op": "JUMPI"
    },
    "2640": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2642": {
      "op": "DUP1"
    },
    "2643": {
      "op": "REVERT"
    },
    "2644": {
      "op": "JUMPDEST"
    },
    "2645": {
      "op": "PUSH2",
      "value": "0x760"
    },
    "2648": {
      "op": "DUP3"
    },
    "2649": {
      "op": "PUSH2",
      "value": "0xA26"
    },
    "2652": {
      "jump": "i",
      "op": "JUMP"
    },
    "2653": {
      "op": "JUMPDEST"
    },
    "2654": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2656": {
      "op": "DUP1"
    },
    "2657": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2659": {
      "op": "DUP4"
    },
    "2660": {
      "op": "DUP6"
    },
    "2661": {
      "op": "SUB"
    },
    "2662": {
      "op": "SLT"
    },
    "2663": {
      "op": "ISZERO"
    },
    "2664": {
      "op": "PUSH2",
      "value": "0xA70"
    },
    "2667": {
      "op": "JUMPI"
    },
    "2668": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2670": {
      "op": "DUP1"
    },
    "2671": {
      "op": "REVERT"
    },
    "2672": {
      "op": "JUMPDEST"
    },
    "2673": {
      "op": "PUSH2",
      "value": "0xA79"
    },
    "2676": {
      "op": "DUP4"
    },
    "2677": {
      "op": "PUSH2",
      "value": "0xA26"
    },
    "2680": {
      "jump": "i",
      "op": "JUMP"
    },
    "2681": {
      "op": "JUMPDEST"
    },
    "2682": {
      "op": "SWAP5"
    },
    "2683": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2685": {
      "op": "SWAP4"
    },
    "2686": {
      "op": "SWAP1"
    },
    "2687": {
      "op": "SWAP4"
    },
    "2688": {
      "op": "ADD"
    },
    "2689": {
      "op": "CALLDATALOAD"
    },
    "2690": {
      "op": "SWAP4"
    },
    "2691": {
      "op": "POP"
    },
    "2692": {
      "op": "POP"
    },
    "2693": {
      "op": "POP"
    },
    "2694": {
      "jump": "o",
      "op": "JUMP"
    },
    "2695": {
      "op": "JUMPDEST"
    },
    "2696": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2698": {
      "op": "DUP1"
    },
    "2699": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2701": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2703": {
      "op": "DUP5"
    },
    "2704": {
      "op": "DUP7"
    },
    "2705": {
      "op": "SUB"
    },
    "2706": {
      "op": "SLT"
    },
    "2707": {
      "op": "ISZERO"
    },
    "2708": {
      "op": "PUSH2",
      "value": "0xA9C"
    },
    "2711": {
      "op": "JUMPI"
    },
    "2712": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2714": {
      "op": "DUP1"
    },
    "2715": {
      "op": "REVERT"
    },
    "2716": {
      "op": "JUMPDEST"
    },
    "2717": {
      "op": "POP"
    },
    "2718": {
      "op": "POP"
    },
    "2719": {
      "op": "DUP2"
    },
    "2720": {
      "op": "CALLDATALOAD"
    },
    "2721": {
      "op": "SWAP4"
    },
    "2722": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2724": {
      "op": "DUP4"
    },
    "2725": {
      "op": "ADD"
    },
    "2726": {
      "op": "CALLDATALOAD"
    },
    "2727": {
      "op": "SWAP4"
    },
    "2728": {
      "op": "POP"
    },
    "2729": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2731": {
      "op": "SWAP1"
    },
    "2732": {
      "op": "SWAP3"
    },
    "2733": {
      "op": "ADD"
    },
    "2734": {
      "op": "CALLDATALOAD"
    },
    "2735": {
      "op": "SWAP2"
    },
    "2736": {
      "op": "SWAP1"
    },
    "2737": {
      "op": "POP"
    },
    "2738": {
      "jump": "o",
      "op": "JUMP"
    },
    "2739": {
      "op": "JUMPDEST"
    },
    "2740": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2742": {
      "op": "DUP1"
    },
    "2743": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2745": {
      "op": "DUP4"
    },
    "2746": {
      "op": "DUP6"
    },
    "2747": {
      "op": "SUB"
    },
    "2748": {
      "op": "SLT"
    },
    "2749": {
      "op": "ISZERO"
    },
    "2750": {
      "op": "PUSH2",
      "value": "0xAC6"
    },
    "2753": {
      "op": "JUMPI"
    },
    "2754": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2756": {
      "op": "DUP1"
    },
    "2757": {
      "op": "REVERT"
    },
    "2758": {
      "op": "JUMPDEST"
    },
    "2759": {
      "op": "DUP3"
    },
    "2760": {
      "op": "CALLDATALOAD"
    },
    "2761": {
      "op": "SWAP2"
    },
    "2762": {
      "op": "POP"
    },
    "2763": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2765": {
      "op": "DUP4"
    },
    "2766": {
      "op": "ADD"
    },
    "2767": {
      "op": "CALLDATALOAD"
    },
    "2768": {
      "op": "PUSH1",
      "value": "0x3"
    },
    "2770": {
      "op": "DUP2"
    },
    "2771": {
      "op": "LT"
    },
    "2772": {
      "op": "PUSH2",
      "value": "0xADC"
    },
    "2775": {
      "op": "JUMPI"
    },
    "2776": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2778": {
      "op": "DUP1"
    },
    "2779": {
      "op": "REVERT"
    },
    "2780": {
      "op": "JUMPDEST"
    },
    "2781": {
      "op": "DUP1"
    },
    "2782": {
      "op": "SWAP2"
    },
    "2783": {
      "op": "POP"
    },
    "2784": {
      "op": "POP"
    },
    "2785": {
      "op": "SWAP3"
    },
    "2786": {
      "op": "POP"
    },
    "2787": {
      "op": "SWAP3"
    },
    "2788": {
      "op": "SWAP1"
    },
    "2789": {
      "op": "POP"
    },
    "2790": {
      "jump": "o",
      "op": "JUMP"
    },
    "2791": {
      "op": "JUMPDEST"
    },
    "2792": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2794": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2796": {
      "op": "DUP3"
    },
    "2797": {
      "op": "DUP5"
    },
    "2798": {
      "op": "SUB"
    },
    "2799": {
      "op": "SLT"
    },
    "2800": {
      "op": "ISZERO"
    },
    "2801": {
      "op": "PUSH2",
      "value": "0xAF9"
    },
    "2804": {
      "op": "JUMPI"
    },
    "2805": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2807": {
      "op": "DUP1"
    },
    "2808": {
      "op": "REVERT"
    },
    "2809": {
      "op": "JUMPDEST"
    },
    "2810": {
      "op": "POP"
    },
    "2811": {
      "op": "CALLDATALOAD"
    },
    "2812": {
      "op": "SWAP2"
    },
    "2813": {
      "op": "SWAP1"
    },
    "2814": {
      "op": "POP"
    },
    "2815": {
      "jump": "o",
      "op": "JUMP"
    },
    "2816": {
      "op": "JUMPDEST"
    },
    "2817": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2819": {
      "op": "DUP1"
    },
    "2820": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2822": {
      "op": "DUP4"
    },
    "2823": {
      "op": "DUP6"
    },
    "2824": {
      "op": "SUB"
    },
    "2825": {
      "op": "SLT"
    },
    "2826": {
      "op": "ISZERO"
    },
    "2827": {
      "op": "PUSH2",
      "value": "0xB13"
    },
    "2830": {
      "op": "JUMPI"
    },
    "2831": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2833": {
      "op": "DUP1"
    },
    "2834": {
      "op": "REVERT"
    },
    "2835": {
      "op": "JUMPDEST"
    },
    "2836": {
      "op": "DUP3"
    },
    "2837": {
      "op": "CALLDATALOAD"
    },
    "2838": {
      "op": "SWAP2"
    },
    "2839": {
      "op": "POP"
    },
    "2840": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2842": {
      "op": "DUP4"
    },
    "2843": {
      "op": "ADD"
    },
    "2844": {
      "op": "CALLDATALOAD"
    },
    "2845": {
      "op": "DUP1"
    },
    "2846": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2848": {
      "op": "SIGNEXTEND"
    },
    "2849": {
      "op": "DUP2"
    },
    "2850": {
      "op": "EQ"
    },
    "2851": {
      "op": "PUSH2",
      "value": "0xADC"
    },
    "2854": {
      "op": "JUMPI"
    },
    "2855": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2857": {
      "op": "DUP1"
    },
    "2858": {
      "op": "REVERT"
    },
    "2859": {
      "op": "JUMPDEST"
    },
    "2860": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2862": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2864": {
      "op": "DUP3"
    },
    "2865": {
      "op": "DUP5"
    },
    "2866": {
      "op": "SUB"
    },
    "2867": {
      "op": "SLT"
    },
    "2868": {
      "op": "ISZERO"
    },
    "2869": {
      "op": "PUSH2",
      "value": "0xB3D"
    },
    "2872": {
      "op": "JUMPI"
    },
    "2873": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2875": {
      "op": "DUP1"
    },
    "2876": {
      "op": "REVERT"
    },
    "2877": {
      "op": "JUMPDEST"
    },
    "2878": {
      "op": "DUP2"
    },
    "2879": {
      "op": "CALLDATALOAD"
    },
    "2880": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2882": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2884": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2886": {
      "op": "SHL"
    },
    "2887": {
      "op": "SUB"
    },
    "2888": {
      "op": "DUP2"
    },
    "2889": {
      "op": "AND"
    },
    "2890": {
      "op": "DUP2"
    },
    "2891": {
      "op": "EQ"
    },
    "2892": {
      "op": "PUSH2",
      "value": "0x760"
    },
    "2895": {
      "op": "JUMPI"
    },
    "2896": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2898": {
      "op": "DUP1"
    },
    "2899": {
      "op": "REVERT"
    },
    "2900": {
      "op": "JUMPDEST"
    },
    "2901": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "2906": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "2908": {
      "op": "SHL"
    },
    "2909": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2911": {
      "op": "MSTORE"
    },
    "2912": {
      "op": "PUSH1",
      "value": "0x21"
    },
    "2914": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "2916": {
      "op": "MSTORE"
    },
    "2917": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2919": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2921": {
      "op": "REVERT"
    },
    "2922": {
      "op": "JUMPDEST"
    },
    "2923": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2925": {
      "op": "DUP2"
    },
    "2926": {
      "op": "ADD"
    },
    "2927": {
      "op": "PUSH1",
      "value": "0x3"
    },
    "2929": {
      "op": "DUP4"
    },
    "2930": {
      "op": "LT"
    },
    "2931": {
      "op": "PUSH2",
      "value": "0xB8C"
    },
    "2934": {
      "op": "JUMPI"
    },
    "2935": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "2940": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "2942": {
      "op": "SHL"
    },
    "2943": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2945": {
      "op": "MSTORE"
    },
    "2946": {
      "op": "PUSH1",
      "value": "0x21"
    },
    "2948": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "2950": {
      "op": "MSTORE"
    },
    "2951": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2953": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2955": {
      "op": "REVERT"
    },
    "2956": {
      "op": "JUMPDEST"
    },
    "2957": {
      "op": "SWAP2"
    },
    "2958": {
      "op": "SWAP1"
    },
    "2959": {
      "op": "MSTORE"
    },
    "2960": {
      "op": "SWAP1"
    },
    "2961": {
      "jump": "o",
      "op": "JUMP"
    },
    "2962": {
      "op": "JUMPDEST"
    },
    "2963": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "2968": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "2970": {
      "op": "SHL"
    },
    "2971": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2973": {
      "op": "MSTORE"
    },
    "2974": {
      "op": "PUSH1",
      "value": "0x11"
    },
    "2976": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "2978": {
      "op": "MSTORE"
    },
    "2979": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2981": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2983": {
      "op": "REVERT"
    },
    "2984": {
      "op": "JUMPDEST"
    },
    "2985": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2987": {
      "op": "DUP2"
    },
    "2988": {
      "op": "DUP2"
    },
    "2989": {
      "op": "JUMPDEST"
    },
    "2990": {
      "op": "DUP1"
    },
    "2991": {
      "op": "DUP6"
    },
    "2992": {
      "op": "GT"
    },
    "2993": {
      "op": "ISZERO"
    },
    "2994": {
      "op": "PUSH2",
      "value": "0xBE3"
    },
    "2997": {
      "op": "JUMPI"
    },
    "2998": {
      "op": "DUP2"
    },
    "2999": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3001": {
      "op": "NOT"
    },
    "3002": {
      "op": "DIV"
    },
    "3003": {
      "op": "DUP3"
    },
    "3004": {
      "op": "GT"
    },
    "3005": {
      "op": "ISZERO"
    },
    "3006": {
      "op": "PUSH2",
      "value": "0xBC9"
    },
    "3009": {
      "op": "JUMPI"
    },
    "3010": {
      "op": "PUSH2",
      "value": "0xBC9"
    },
    "3013": {
      "op": "PUSH2",
      "value": "0xB92"
    },
    "3016": {
      "jump": "i",
      "op": "JUMP"
    },
    "3017": {
      "op": "JUMPDEST"
    },
    "3018": {
      "op": "DUP1"
    },
    "3019": {
      "op": "DUP6"
    },
    "3020": {
      "op": "AND"
    },
    "3021": {
      "op": "ISZERO"
    },
    "3022": {
      "op": "PUSH2",
      "value": "0xBD6"
    },
    "3025": {
      "op": "JUMPI"
    },
    "3026": {
      "op": "SWAP2"
    },
    "3027": {
      "op": "DUP2"
    },
    "3028": {
      "op": "MUL"
    },
    "3029": {
      "op": "SWAP2"
    },
    "3030": {
      "op": "JUMPDEST"
    },
    "3031": {
      "op": "SWAP4"
    },
    "3032": {
      "op": "DUP5"
    },
    "3033": {
      "op": "SHR"
    },
    "3034": {
      "op": "SWAP4"
    },
    "3035": {
      "op": "SWAP1"
    },
    "3036": {
      "op": "DUP1"
    },
    "3037": {
      "op": "MUL"
    },
    "3038": {
      "op": "SWAP1"
    },
    "3039": {
      "op": "PUSH2",
      "value": "0xBAD"
    },
    "3042": {
      "op": "JUMP"
    },
    "3043": {
      "op": "JUMPDEST"
    },
    "3044": {
      "op": "POP"
    },
    "3045": {
      "op": "SWAP3"
    },
    "3046": {
      "op": "POP"
    },
    "3047": {
      "op": "SWAP3"
    },
    "3048": {
      "op": "SWAP1"
    },
    "3049": {
      "op": "POP"
    },
    "3050": {
      "jump": "o",
      "op": "JUMP"
    },
    "3051": {
      "op": "JUMPDEST"
    },
    "3052": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3054": {
      "op": "DUP3"
    },
    "3055": {
      "op": "PUSH2",
      "value": "0xBFA"
    },
    "3058": {
      "op": "JUMPI"
    },
    "3059": {
      "op": "POP"
    },
    "3060": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3062": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3065": {
      "op": "JUMP"
    },
    "3066": {
      "op": "JUMPDEST"
    },
    "3067": {
      "op": "DUP2"
    },
    "3068": {
      "op": "PUSH2",
      "value": "0xC07"
    },
    "3071": {
      "op": "JUMPI"
    },
    "3072": {
      "op": "POP"
    },
    "3073": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3075": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3078": {
      "op": "JUMP"
    },
    "3079": {
      "op": "JUMPDEST"
    },
    "3080": {
      "op": "DUP2"
    },
    "3081": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3083": {
      "op": "DUP2"
    },
    "3084": {
      "op": "EQ"
    },
    "3085": {
      "op": "PUSH2",
      "value": "0xC1D"
    },
    "3088": {
      "op": "JUMPI"
    },
    "3089": {
      "op": "PUSH1",
      "value": "0x2"
    },
    "3091": {
      "op": "DUP2"
    },
    "3092": {
      "op": "EQ"
    },
    "3093": {
      "op": "PUSH2",
      "value": "0xC27"
    },
    "3096": {
      "op": "JUMPI"
    },
    "3097": {
      "op": "PUSH2",
      "value": "0xC43"
    },
    "3100": {
      "op": "JUMP"
    },
    "3101": {
      "op": "JUMPDEST"
    },
    "3102": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3104": {
      "op": "SWAP2"
    },
    "3105": {
      "op": "POP"
    },
    "3106": {
      "op": "POP"
    },
    "3107": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3110": {
      "op": "JUMP"
    },
    "3111": {
      "op": "JUMPDEST"
    },
    "3112": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "3114": {
      "op": "DUP5"
    },
    "3115": {
      "op": "GT"
    },
    "3116": {
      "op": "ISZERO"
    },
    "3117": {
      "op": "PUSH2",
      "value": "0xC38"
    },
    "3120": {
      "op": "JUMPI"
    },
    "3121": {
      "op": "PUSH2",
      "value": "0xC38"
    },
    "3124": {
      "op": "PUSH2",
      "value": "0xB92"
    },
    "3127": {
      "jump": "i",
      "op": "JUMP"
    },
    "3128": {
      "op": "JUMPDEST"
    },
    "3129": {
      "op": "POP"
    },
    "3130": {
      "op": "POP"
    },
    "3131": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "3133": {
      "op": "DUP3"
    },
    "3134": {
      "op": "SHL"
    },
    "3135": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3138": {
      "op": "JUMP"
    },
    "3139": {
      "op": "JUMPDEST"
    },
    "3140": {
      "op": "POP"
    },
    "3141": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "3143": {
      "op": "DUP4"
    },
    "3144": {
      "op": "LT"
    },
    "3145": {
      "op": "PUSH2",
      "value": "0x133"
    },
    "3148": {
      "op": "DUP4"
    },
    "3149": {
      "op": "LT"
    },
    "3150": {
      "op": "AND"
    },
    "3151": {
      "op": "PUSH1",
      "value": "0x4E"
    },
    "3153": {
      "op": "DUP5"
    },
    "3154": {
      "op": "LT"
    },
    "3155": {
      "op": "PUSH1",
      "value": "0xB"
    },
    "3157": {
      "op": "DUP5"
    },
    "3158": {
      "op": "LT"
    },
    "3159": {
      "op": "AND"
    },
    "3160": {
      "op": "OR"
    },
    "3161": {
      "op": "ISZERO"
    },
    "3162": {
      "op": "PUSH2",
      "value": "0xC66"
    },
    "3165": {
      "op": "JUMPI"
    },
    "3166": {
      "op": "POP"
    },
    "3167": {
      "op": "DUP2"
    },
    "3168": {
      "op": "DUP2"
    },
    "3169": {
      "op": "EXP"
    },
    "3170": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3173": {
      "op": "JUMP"
    },
    "3174": {
      "op": "JUMPDEST"
    },
    "3175": {
      "op": "PUSH2",
      "value": "0xC70"
    },
    "3178": {
      "op": "DUP4"
    },
    "3179": {
      "op": "DUP4"
    },
    "3180": {
      "op": "PUSH2",
      "value": "0xBA8"
    },
    "3183": {
      "jump": "i",
      "op": "JUMP"
    },
    "3184": {
      "op": "JUMPDEST"
    },
    "3185": {
      "op": "DUP1"
    },
    "3186": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3188": {
      "op": "NOT"
    },
    "3189": {
      "op": "DIV"
    },
    "3190": {
      "op": "DUP3"
    },
    "3191": {
      "op": "GT"
    },
    "3192": {
      "op": "ISZERO"
    },
    "3193": {
      "op": "PUSH2",
      "value": "0xC84"
    },
    "3196": {
      "op": "JUMPI"
    },
    "3197": {
      "op": "PUSH2",
      "value": "0xC84"
    },
    "3200": {
      "op": "PUSH2",
      "value": "0xB92"
    },
    "3203": {
      "jump": "i",
      "op": "JUMP"
    },
    "3204": {
      "op": "JUMPDEST"
    },
    "3205": {
      "op": "MUL"
    },
    "3206": {
      "op": "SWAP4"
    },
    "3207": {
      "op": "SWAP3"
    },
    "3208": {
      "op": "POP"
    },
    "3209": {
      "op": "POP"
    },
    "3210": {
      "op": "POP"
    },
    "3211": {
      "jump": "o",
      "op": "JUMP"
    },
    "3212": {
      "op": "JUMPDEST"
    },
    "3213": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3215": {
      "op": "PUSH2",
      "value": "0x760"
    },
    "3218": {
      "op": "DUP4"
    },
    "3219": {
      "op": "DUP4"
    },
    "3220": {
      "op": "PUSH2",
      "value": "0xBEB"
    },
    "3223": {
      "jump": "i",
      "op": "JUMP"
    },
    "3224": {
      "op": "JUMPDEST"
    },
    "3225": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "3230": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "3232": {
      "op": "SHL"
    },
    "3233": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3235": {
      "op": "MSTORE"
    },
    "3236": {
      "op": "PUSH1",
      "value": "0x12"
    },
    "3238": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "3240": {
      "op": "MSTORE"
    },
    "3241": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "3243": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3245": {
      "op": "REVERT"
    },
    "3246": {
      "op": "JUMPDEST"
    },
    "3247": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3249": {
      "op": "DUP3"
    },
    "3250": {
      "op": "PUSH2",
      "value": "0xCCB"
    },
    "3253": {
      "op": "JUMPI"
    },
    "3254": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "3259": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "3261": {
      "op": "SHL"
    },
    "3262": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3264": {
      "op": "MSTORE"
    },
    "3265": {
      "op": "PUSH1",
      "value": "0x12"
    },
    "3267": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "3269": {
      "op": "MSTORE"
    },
    "3270": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "3272": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3274": {
      "op": "REVERT"
    },
    "3275": {
      "op": "JUMPDEST"
    },
    "3276": {
      "op": "POP"
    },
    "3277": {
      "op": "DIV"
    },
    "3278": {
      "op": "SWAP1"
    },
    "3279": {
      "jump": "o",
      "op": "JUMP"
    },
    "3280": {
      "op": "JUMPDEST"
    },
    "3281": {
      "op": "DUP1"
    },
    "3282": {
      "op": "DUP3"
    },
    "3283": {
      "op": "ADD"
    },
    "3284": {
      "op": "DUP1"
    },
    "3285": {
      "op": "DUP3"
    },
    "3286": {
      "op": "GT"
    },
    "3287": {
      "op": "ISZERO"
    },
    "3288": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3291": {
      "op": "JUMPI"
    },
    "3292": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3295": {
      "op": "PUSH2",
      "value": "0xB92"
    },
    "3298": {
      "jump": "i",
      "op": "JUMP"
    },
    "3299": {
      "op": "JUMPDEST"
    },
    "3300": {
      "op": "DUP1"
    },
    "3301": {
      "op": "DUP3"
    },
    "3302": {
      "op": "MUL"
    },
    "3303": {
      "op": "DUP2"
    },
    "3304": {
      "op": "ISZERO"
    },
    "3305": {
      "op": "DUP3"
    },
    "3306": {
      "op": "DUP3"
    },
    "3307": {
      "op": "DIV"
    },
    "3308": {
      "op": "DUP5"
    },
    "3309": {
      "op": "EQ"
    },
    "3310": {
      "op": "OR"
    },
    "3311": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3314": {
      "op": "JUMPI"
    },
    "3315": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3318": {
      "op": "PUSH2",
      "value": "0xB92"
    },
    "3321": {
      "jump": "i",
      "op": "JUMP"
    },
    "3322": {
      "op": "JUMPDEST"
    },
    "3323": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3325": {
      "op": "DUP2"
    },
    "3326": {
      "op": "DUP2"
    },
    "3327": {
      "op": "SIGNEXTEND"
    },
    "3328": {
      "op": "SWAP1"
    },
    "3329": {
      "op": "DUP4"
    },
    "3330": {
      "op": "SWAP1"
    },
    "3331": {
      "op": "SIGNEXTEND"
    },
    "3332": {
      "op": "ADD"
    },
    "3333": {
      "op": "PUSH1",
      "value": "0x7F"
    },
    "3335": {
      "op": "DUP2"
    },
    "3336": {
      "op": "SGT"
    },
    "3337": {
      "op": "PUSH1",
      "value": "0x7F"
    },
    "3339": {
      "op": "NOT"
    },
    "3340": {
      "op": "DUP3"
    },
    "3341": {
      "op": "SLT"
    },
    "3342": {
      "op": "OR"
    },
    "3343": {
      "op": "ISZERO"
    },
    "3344": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3347": {
      "op": "JUMPI"
    },
    "3348": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "3351": {
      "op": "PUSH2",
      "value": "0xB92"
    },
    "3354": {
      "jump": "i",
      "op": "JUMP"
    },
    "3355": {
      "op": "JUMPDEST"
    },
    "3356": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3358": {
      "op": "DUP3"
    },
    "3359": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3361": {
      "op": "SIGNEXTEND"
    },
    "3362": {
      "op": "DUP3"
    },
    "3363": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3365": {
      "op": "SIGNEXTEND"
    },
    "3366": {
      "op": "MUL"
    },
    "3367": {
      "op": "DUP1"
    },
    "3368": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3370": {
      "op": "SIGNEXTEND"
    },
    "3371": {
      "op": "SWAP2"
    },
    "3372": {
      "op": "POP"
    },
    "3373": {
      "op": "DUP1"
    },
    "3374": {
      "op": "DUP3"
    },
    "3375": {
      "op": "EQ"
    },
    "3376": {
      "op": "PUSH2",
      "value": "0xD3B"
    },
    "3379": {
      "op": "JUMPI"
    },
    "3380": {
      "op": "PUSH2",
      "value": "0xD3B"
    },
    "3383": {
      "op": "PUSH2",
      "value": "0xB92"
    },
    "3386": {
      "jump": "i",
      "op": "JUMP"
    },
    "3387": {
      "op": "JUMPDEST"
    },
    "3388": {
      "op": "POP"
    },
    "3389": {
      "op": "SWAP3"
    },
    "3390": {
      "op": "SWAP2"
    },
    "3391": {
      "op": "POP"
    },
    "3392": {
      "op": "POP"
    },
    "3393": {
      "jump": "o",
      "op": "JUMP"
    },
    "3394": {
      "op": "JUMPDEST"
    },
    "3395": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "3397": {
      "op": "PUSH2",
      "value": "0x760"
    },
    "3400": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "3402": {
      "op": "DUP5"
    },
    "3403": {
      "op": "AND"
    },
    "3404": {
      "op": "DUP4"
    },
    "3405": {
      "op": "PUSH2",
      "value": "0xBEB"
    },
    "3408": {
      "jump": "i",
      "op": "JUMP"
    }
  },
  "sha1": "ea5625ab8a940aaeab72b63056a83d87bcbbc383",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.19;\n\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\n\nimport {Timestamp, blockTimestamp, zeroTimestamp} from \"../shared/IBaseTypes.sol\";\nimport {UFixed, UFixedType} from \"../shared/UFixedMath.sol\";\nimport {NftId} from \"../registry/IChainNft.sol\";\n\n\ncontract RewardHelper is\n    Ownable,\n    UFixedType\n{\n    uint256 public constant MAX_REWARD_RATE_VALUE = 333;\n    int8 public constant MAX_REWARD_RATE_EXP = -3;\n    uint256 public constant YEAR_DURATION = 365 days;\n\n    struct RewardInfo {\n        UFixed rewardRate;\n        Timestamp createdAt;\n        Timestamp updatedAt;\n    }\n\n    event LogTargetRewardRateSet(\n        address user,\n        NftId target,\n        UFixed oldRewardRate,\n        UFixed newRewardRate\n    );\n\n    event LogDefaultRewardRateSet(\n        address user,\n        UFixed oldRewardRate,\n        UFixed newRewardRate\n    );\n\n    // target specific reward rate (apr)\n    mapping(NftId target => RewardInfo rewardRate) internal _targetRewardRate;\n\n    // default reward rate (apr)\n    UFixed internal _rewardRate;\n    UFixed internal _rewardRateMax; // max apr for staking rewards\n\n\n    constructor() Ownable() {\n        _rewardRateMax = itof(MAX_REWARD_RATE_VALUE, MAX_REWARD_RATE_EXP);\n    }\n\n\n    function setRewardRate(UFixed newRewardRate)\n        external\n        onlyOwner\n    {\n        require(newRewardRate <= _rewardRateMax,\"ERROR:RRH-010:REWARD_EXCEEDS_MAX_VALUE\");\n\n        UFixed oldRewardRate = _rewardRate;\n        _rewardRate = newRewardRate;\n\n        emit LogDefaultRewardRateSet(owner(), oldRewardRate, _rewardRate);\n    }\n\n\n    function setTargetRewardRate(NftId target, UFixed newRewardRate)\n        external\n        onlyOwner\n    {\n        require(newRewardRate <= _rewardRateMax,\"ERROR:RRH-020:REWARD_EXCEEDS_MAX_VALUE\");\n\n        RewardInfo storage info = _targetRewardRate[target];\n        UFixed oldRewardRate = info.rewardRate;\n\n        info.rewardRate = newRewardRate;\n        info.updatedAt = blockTimestamp();\n\n        if (info.createdAt == zeroTimestamp()) {\n            info.createdAt = blockTimestamp();\n            oldRewardRate = _rewardRate;\n        }\n\n        emit LogTargetRewardRateSet(\n            owner(),\n            target,\n            oldRewardRate,\n            newRewardRate\n        );\n    }\n\n\n    function maxRewardRate() external view returns (UFixed) {\n        return _rewardRateMax;\n    }\n\n\n    function rewardRate() external view returns (UFixed) {\n        return _rewardRate;\n    }\n\n\n    function getTargetRewardRate(NftId target)\n        public \n        view \n        returns(UFixed)\n    {\n        RewardInfo memory info = _targetRewardRate[target];\n\n        if (info.createdAt > zeroTimestamp()) {\n            return info.rewardRate;\n        }\n\n        // fallback if no target specific rate is defined\n        return _rewardRate;\n    }\n\n\n    function calculateRewards(uint256 amount, uint256 duration, UFixed rate)\n        public \n        pure \n        returns(uint256 rewardAmount)\n    {\n        UFixed yearFraction = itof(duration) / itof(YEAR_DURATION);\n        UFixed rewardDuration = rate * yearFraction;\n        rewardAmount = ftoi(itof(amount) * rewardDuration);\n    }\n}\n",
  "sourceMap": "329:2906:52:-:0;;;1192:106;;;;;;;;;-1:-1:-1;936:32:6;719:10:23;936:18:6;:32::i;:::-;1243:48:52::1;436:3;-1:-1:-1::0;;1243:4:52::1;:48::i;:::-;1226:14;:65:::0;329:2906;;2433:187:6;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:6;;;-1:-1:-1;;;;;;2541:17:6;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2620:297:47:-;2699:6;;2729:9;2735:3;2183:2;2729:9;:::i;:::-;:14;;;;2721:58;;;;-1:-1:-1;;;2721:58:47;;533:2:67;2721:58:47;;;515:21:67;572:2;552:18;;;545:30;611:33;591:18;;;584:61;662:18;;2721:58:47;;;;;;;;;2810:7;2183:2;2810:1;:7;:::i;:::-;2797:20;;:9;2803:3;2183:2;2797:9;:::i;:::-;:20;;;;2789:64;;;;-1:-1:-1;;;2789:64:47;;1134:2:67;2789:64:47;;;1116:21:67;1173:2;1153:18;;;1146:30;1212:33;1192:18;;;1185:61;1263:18;;2789:64:47;932:355:67;2789:64:47;2899:9;2905:3;2183:2;2899:9;:::i;:::-;2887:22;;:2;:22;:::i;:::-;2883:26;;:1;:26;:::i;:::-;2864:46;;2620:297;;;;;:::o;14:127:67:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:180;183:3;212:16;;;230;;;;208:39;291:3;262:14;;-1:-1:-1;;278:18:67;;259:38;256:64;;;300:18;;:::i;691:236::-;728:7;805:1;802;791:16;787:1;784;773:16;769:39;842:11;839:1;828:26;817:37;;885:11;876:7;873:24;863:58;;901:18;;:::i;:::-;863:58;691:236;;;;:::o;1292:422::-;1381:1;1424:5;1381:1;1438:270;1459:7;1449:8;1446:21;1438:270;;;1518:4;1514:1;1510:6;1506:17;1500:4;1497:27;1494:53;;;1527:18;;:::i;:::-;1577:7;1567:8;1563:22;1560:55;;;1597:16;;;;1560:55;1676:22;;;;1636:15;;;;1438:270;;;1442:3;1292:422;;;;;:::o;1719:806::-;1768:5;1798:8;1788:80;;-1:-1:-1;1839:1:67;1853:5;;1788:80;1887:4;1877:76;;-1:-1:-1;1924:1:67;1938:5;;1877:76;1969:4;1987:1;1982:59;;;;2055:1;2050:130;;;;1962:218;;1982:59;2012:1;2003:10;;2026:5;;;2050:130;2087:3;2077:8;2074:17;2071:43;;;2094:18;;:::i;:::-;-1:-1:-1;;2150:1:67;2136:16;;2165:5;;1962:218;;2264:2;2254:8;2251:16;2245:3;2239:4;2236:13;2232:36;2226:2;2216:8;2213:16;2208:2;2202:4;2199:12;2195:35;2192:77;2189:159;;;-1:-1:-1;2301:19:67;;;2333:5;;2189:159;2380:34;2405:8;2399:4;2380:34;:::i;:::-;2450:6;2446:1;2442:6;2438:19;2429:7;2426:32;2423:58;;;2461:18;;:::i;:::-;2499:20;;1719:806;-1:-1:-1;;;1719:806:67:o;2530:140::-;2588:5;2617:47;2658:4;2648:8;2644:19;2638:4;2617:47;:::i;2675:168::-;2748:9;;;2779;;2796:15;;;2790:22;;2776:37;2766:71;;2817:18;;:::i;2675:168::-;329:2906:52;;;;;;",
  "sourcePath": "contracts/staking/RewardHelper.sol",
  "type": "contract"
}