{
  "_format": "hh-sol-artifact-1",
  "contractName": "XAllocationVotingV9",
  "sourceName": "contracts/deprecated/V9/x-allocation-voting-governance/XAllocationVotingV9.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessControlBadConfirmation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "neededRole",
          "type": "bytes32"
        }
      ],
      "name": "AccessControlUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "AddressEmptyCode",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "AutoVotingEnabled",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "AutoVotingNotEnabled",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "B3TRGovernorOnlyExecutor",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "DelegatedToNavigator",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DuplicateAppVote",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "ERC1967InvalidImplementation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1967NonPayable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedInnerCall",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "GovernorAlreadyCastVote",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "GovernorAppNotAvailableForVoting",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "GovernorInsufficientVotingPower",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "votingPeriod",
          "type": "uint256"
        }
      ],
      "name": "GovernorInvalidVotingPeriod",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "GovernorNonexistentRound",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "person",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "GovernorPersonhoodVerificationFailed",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "enum IXAllocationVotingGovernor.RoundState",
          "name": "current",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "expectedStates",
          "type": "bytes32"
        }
      ],
      "name": "GovernorUnexpectedRoundState",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "threshold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "votes",
          "type": "uint256"
        }
      ],
      "name": "GovernorVotingThresholdNotMet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "InvalidCaller",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "contractName",
          "type": "string"
        }
      ],
      "name": "InvalidContractAddress",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "NavigatorCannotEnableAutoVoting",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "NavigatorPreferencesNotSet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "NotDelegatedToNavigator",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "bits",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "SafeCastOverflowedUintDowncast",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "SkipWindowNotReached",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "UUPSUnauthorizedCallContext",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "slot",
          "type": "bytes32"
        }
      ],
      "name": "UUPSUnsupportedProxiableUUID",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "VoteAlreadyProcessed",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "person",
          "type": "address"
        }
      ],
      "name": "XAllocationVotingPersonhoodVerificationFailed",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "appsIds",
          "type": "bytes32[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "voteWeights",
          "type": "uint256[]"
        }
      ],
      "name": "AllocationAutoVoteCast",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "appsIds",
          "type": "bytes32[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "voteWeights",
          "type": "uint256[]"
        }
      ],
      "name": "AllocationVoteCast",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isPerson",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "appCount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "votingPower",
          "type": "uint256"
        }
      ],
      "name": "AutoVoteSkipped",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "AutoVotingToggled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "fingerprint",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "lastChangedRound",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "multiplier",
          "type": "uint256"
        }
      ],
      "name": "FreshnessMultiplierApplied",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "appsIds",
          "type": "bytes32[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "voteWeights",
          "type": "uint256[]"
        }
      ],
      "name": "NavigatorVoteCast",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "NavigatorVoteSkipped",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "apps",
          "type": "bytes32[]"
        }
      ],
      "name": "PreferredAppsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "previousAdminRole",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newAdminRole",
          "type": "bytes32"
        }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "voteStart",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "voteEnd",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "appsIds",
          "type": "bytes32[]"
        }
      ],
      "name": "RoundCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "CLOCK_MODE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "CONTRACTS_ADDRESS_MANAGER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GOVERNANCE_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ROUND_STARTER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UPGRADER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UPGRADE_INTERFACE_VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "appSharesCap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "baseAllocationPercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "castNavigatorVote",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "appIds",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "voteWeights",
          "type": "uint256[]"
        }
      ],
      "name": "castVote",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "castVoteOnBehalfOf",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "citizenSkipWindowBlocks",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "clock",
      "outputs": [
        {
          "internalType": "uint48",
          "name": "",
          "type": "uint48"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentRoundDeadline",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentRoundId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentRoundSnapshot",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "disableAutoVotingFor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "finalizeRound",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getAppIdsOfRound",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "app",
          "type": "bytes32"
        }
      ],
      "name": "getAppVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "app",
          "type": "bytes32"
        }
      ],
      "name": "getAppVotesQF",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getAppsOfRound",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "id",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "teamWalletAddress",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "metadataURI",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "createdAtTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "appAvailableForAllocationVoting",
              "type": "bool"
            }
          ],
          "internalType": "struct X2EarnAppsDataTypes.AppWithDetailsReturnType[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getDepositVotingPower",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getRound",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "uint48",
              "name": "voteStart",
              "type": "uint48"
            },
            {
              "internalType": "uint32",
              "name": "voteDuration",
              "type": "uint32"
            }
          ],
          "internalType": "struct XAllocationVotingStorageTypes.RoundCore",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getRoundAppSharesCap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getRoundBaseAllocationPercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotalAutoVotingUsersAtRoundStart",
      "outputs": [
        {
          "internalType": "uint208",
          "name": "",
          "type": "uint208"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint48",
          "name": "timepoint",
          "type": "uint48"
        }
      ],
      "name": "getTotalAutoVotingUsersAtTimepoint",
      "outputs": [
        {
          "internalType": "uint208",
          "name": "",
          "type": "uint208"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundStart",
          "type": "uint256"
        }
      ],
      "name": "getTotalVotingPower",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "getUserVotingPreferences",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "hasUserVotedForApp",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "hasVoted",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "hasVotedOnce",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INavigatorRegistry",
          "name": "_navigatorRegistry",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_citizenSkipWindowBlocks",
          "type": "uint256"
        }
      ],
      "name": "initializeV9",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "isActive",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "appId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "isEligibleForVote",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "isFinalized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "isUserAutoVotingEnabled",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint48",
          "name": "timepoint",
          "type": "uint48"
        }
      ],
      "name": "isUserAutoVotingEnabledAtTimepoint",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "isUserAutoVotingEnabledForRound",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "isUserAutoVotingEnabledInCurrentRound",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "latestSucceededRoundId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "navigatorRegistry",
      "outputs": [
        {
          "internalType": "contract INavigatorRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "quorum",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "quorumDenominator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "quorumNumerator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "quorumNumerator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "quorumPercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "quorumReached",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "callerConfirmation",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "roundDeadline",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "roundQuorum",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "roundSnapshot",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "appSharesCap_",
          "type": "uint256"
        }
      ],
      "name": "setAppSharesCap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IB3TRGovernor",
          "name": "newB3TRGovernor",
          "type": "address"
        }
      ],
      "name": "setB3TRGovernor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "baseAllocationPercentage_",
          "type": "uint256"
        }
      ],
      "name": "setBaseAllocationPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newValue",
          "type": "uint256"
        }
      ],
      "name": "setCitizenSkipWindowBlocks",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IEmissions",
          "name": "newEmissions",
          "type": "address"
        }
      ],
      "name": "setEmissionsAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INavigatorRegistry",
          "name": "newNavigatorRegistry",
          "type": "address"
        }
      ],
      "name": "setNavigatorRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IRelayerRewardsPool",
          "name": "newRelayerRewardsPool",
          "type": "address"
        }
      ],
      "name": "setRelayerRewardsPoolAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "appIds",
          "type": "bytes32[]"
        }
      ],
      "name": "setUserVotingPreferences",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVeBetterPassport",
          "name": "newVeBetterPassport",
          "type": "address"
        }
      ],
      "name": "setVeBetterPassport",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVoterRewards",
          "name": "newVoterRewards",
          "type": "address"
        }
      ],
      "name": "setVoterRewardsAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "newVotingPeriod",
          "type": "uint32"
        }
      ],
      "name": "setVotingPeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newVotingThreshold",
          "type": "uint256"
        }
      ],
      "name": "setVotingThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IX2EarnApps",
          "name": "newX2EarnApps",
          "type": "address"
        }
      ],
      "name": "setX2EarnAppsAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "startNewRound",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "state",
      "outputs": [
        {
          "internalType": "enum IXAllocationVotingGovernor.RoundState",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "toggleAutoVoting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "totalVoters",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "totalVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "totalVotesQF",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newQuorumNumerator",
          "type": "uint256"
        }
      ],
      "name": "updateQuorumNumerator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "validatePersonhoodForCurrentRound",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingThreshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051615a6562000104600039600081816143e50152818161440e01526145580152615a656000f3fe6080604052600436106103c55760003560e01c806301ffc9a7146103ca57806302a251a3146103ff578063059e952b1461042257806306f3f9e61461045a5780630a0e74ef1461047c5780630eca87fb1461049c57806319e6e158146104bc578063248a9ca3146104dc578063291605f7146104fc5780632f2ff15d14610529578063300973771461054957806333727c4d146105695780633469f6e21461058957806336568abe146105a95780633b395cbe146105c95780633d4fd3c7146105e95780633e4f49e614610609578063412caf0b1461063657806342707a43146106635780634385963214610683578063498d91bf146106a35780634bb5181a146106c35780634bf5d7e9146106e35780634cadad2f146107055780634f1ef286146107255780634fa76ec91461073857806352d1902d1461074d57806353ed63991461076257806354fd4d5014610782578063561b64ef146107ac57806357181609146107c157806359372812146107e157806359529edd146107f65780635dbdba6e146108165780635fb263671461083657806360c4247f146108565780636282773314610876578063673fc7241461088b57806374038935146108ab57806378a81336146108cb5780637ace2485146108eb578063802d27091461090b57806382afd23b1461092b578063836761e01461094b5780638a829eda1461096b5780638ab52d4b1461098b5780638f1327c0146109a057806391d14854146109f957806391ddadf414610a195780639382c81814610a3b578063952f213314610a5b57806397c3d33414610a7d5780639aeb962b14610a925780639cbe5efd14610ab2578063a022756b14610ac7578063a217fddf14610adc578063a461a94d14610af1578063a56b576514610b11578063a5ae08e914610b31578063a7713a7014610738578063aa86328614610b51578063abc517fd14610b71578063ad3cb1cc14610b86578063b25d6f6214610bb7578063b3c93dab14610bd7578063bb7de6d414610bf7578063bd85948c14610c0c578063be2a9f8f14610c21578063bed7301014610c41578063c048f6c914610c61578063cd669a7214610c81578063cfea80ed14610ca3578063d06efeda14610cc3578063d3a368bd14610ce3578063d4a8dd9814610d03578063d547741f14610d23578063d68b4c3614610d43578063e125f74e14610d63578063e540d01d14610d85578063eb9019d414610da5578063f36c8f5c14610dc5578063f530108f14610de7578063f5fae13614610e07578063f72c0d8b14610e27578063f8ce560a14610e49578063fb03ec6f14610e69575b600080fd5b3480156103d657600080fd5b506103ea6103e5366004614b6f565b610e89565b60405190151581526020015b60405180910390f35b34801561040b57600080fd5b50610414610eb4565b6040519081526020016103f6565b34801561042e57600080fd5b5061044261043d366004614bad565b610f28565b6040516001600160d01b0390911681526020016103f6565b34801561046657600080fd5b5061047a610475366004614bca565b610fa3565b005b34801561048857600080fd5b50610414610497366004614bca565b6110a4565b3480156104a857600080fd5b506104146104b7366004614bca565b61111c565b3480156104c857600080fd5b506104146104d7366004614bca565b611157565b3480156104e857600080fd5b506104146104f7366004614bca565b611192565b34801561050857600080fd5b5061051c610517366004614bca565b6111b2565b6040516103f69190614c33565b34801561053557600080fd5b5061047a610544366004614d05565b61122d565b34801561055557600080fd5b50610414610564366004614bca565b61124f565b34801561057557600080fd5b506103ea610584366004614bca565b61128a565b34801561059557600080fd5b5061047a6105a4366004614bca565b611302565b3480156105b557600080fd5b5061047a6105c4366004614d05565b611391565b3480156105d557600080fd5b5061047a6105e4366004614e31565b6113c9565b3480156105f557600080fd5b506103ea610604366004614e65565b611415565b34801561061557600080fd5b50610629610624366004614bca565b6114a0565b6040516103f69190614ebb565b34801561064257600080fd5b50610656610651366004614ec9565b6116e9565b6040516103f69190614f21565b34801561066f57600080fd5b506103ea61067e366004614f34565b611768565b34801561068f57600080fd5b506103ea61069e366004614d05565b6117fd565b3480156106af57600080fd5b506104146106be366004614bca565b611839565b3480156106cf57600080fd5b506104146106de366004614f6c565b611874565b3480156106ef57600080fd5b506106f86118f1565b6040516103f69190614f8e565b34801561071157600080fd5b50610414610720366004614e65565b611964565b61047a610733366004614fc8565b611970565b34801561074457600080fd5b5061041461198f565b34801561075957600080fd5b506104146119da565b34801561076e57600080fd5b5061047a61077d366004615055565b6119f7565b34801561078e57600080fd5b506040805180820190915260018152603960f81b60208201526106f8565b3480156107b857600080fd5b50610414611c42565b3480156107cd57600080fd5b5061047a6107dc366004614ec9565b611c8d565b3480156107ed57600080fd5b50610414611cdc565b34801561080257600080fd5b50610414610811366004614bca565b611d27565b34801561082257600080fd5b5061047a610831366004614ec9565b611d35565b34801561084257600080fd5b506103ea610851366004614ec9565b611d84565b34801561086257600080fd5b50610414610871366004614bca565b611e43565b34801561088257600080fd5b50610414611e7e565b34801561089757600080fd5b5061047a6108a6366004614ec9565b611ec9565b3480156108b757600080fd5b5061047a6108c6366004614bca565b61207b565b3480156108d757600080fd5b5061047a6108e6366004614ec9565b6120cb565b3480156108f757600080fd5b50610656610906366004614bca565b61211a565b34801561091757600080fd5b506103ea610926366004614ec9565b612155565b34801561093757600080fd5b506103ea610946366004614bca565b61218f565b34801561095757600080fd5b5061047a610966366004614bca565b6121b3565b34801561097757600080fd5b5061047a610986366004614ec9565b612203565b34801561099757600080fd5b506104146123cc565b3480156109ac57600080fd5b506109c06109bb366004614bca565b612417565b6040805182516001600160a01b0316815260208084015165ffffffffffff16908201529181015163ffffffff16908201526060016103f6565b348015610a0557600080fd5b506103ea610a14366004614d05565b6124a4565b348015610a2557600080fd5b50610a2e6124da565b6040516103f69190615117565b348015610a4757600080fd5b5061047a610a56366004614bca565b612549565b348015610a6757600080fd5b50610414600080516020615a1083398151915281565b348015610a8957600080fd5b50610414612599565b348015610a9e57600080fd5b506103ea610aad366004614ec9565b6125e4565b348015610abe57600080fd5b5061041461261e565b348015610ad357600080fd5b50610442612669565b348015610ae857600080fd5b50610414600081565b348015610afd57600080fd5b506103ea610b0c36600461512a565b61276d565b348015610b1d57600080fd5b50610414610b2c366004614e65565b6127a9565b348015610b3d57600080fd5b5061047a610b4c366004614e65565b612803565b348015610b5d57600080fd5b5061047a610b6c366004614e65565b612c7d565b348015610b7d57600080fd5b50610414612e9f565b348015610b9257600080fd5b506106f8604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610bc357600080fd5b5061047a610bd2366004614ec9565b612eea565b348015610be357600080fd5b5061047a610bf2366004614ec9565b612f39565b348015610c0357600080fd5b50610414612f88565b348015610c1857600080fd5b50610414612fd3565b348015610c2d57600080fd5b5061047a610c3c366004614e65565b6136b4565b348015610c4d57600080fd5b50610414610c5c366004614f6c565b613d6e565b348015610c6d57600080fd5b5061047a610c7c366004614ec9565b613daa565b348015610c8d57600080fd5b506104146000805160206159f083398151915281565b348015610caf57600080fd5b506103ea610cbe366004614ec9565b613df9565b348015610ccf57600080fd5b50610414610cde366004614bca565b613eb3565b348015610cef57600080fd5b50610414610cfe366004614bca565b613eee565b348015610d0f57600080fd5b506103ea610d1e366004614bca565b613f29565b348015610d2f57600080fd5b5061047a610d3e366004614d05565b613f6f565b348015610d4f57600080fd5b506103ea610d5e366004614f6c565b613f8b565b348015610d6f57600080fd5b50610d78613fe8565b6040516103f69190615158565b348015610d9157600080fd5b5061047a610da036600461517e565b614004565b348015610db157600080fd5b50610414610dc0366004614e65565b6140e6565b348015610dd157600080fd5b5061041460008051602061599083398151915281565b348015610df357600080fd5b5061047a610e02366004614ec9565b614122565b348015610e1357600080fd5b5061047a610e22366004614bca565b614171565b348015610e3357600080fd5b506104146000805160206159b083398151915281565b348015610e5557600080fd5b50610414610e64366004614bca565b6141c1565b348015610e7557600080fd5b50610414610e84366004614bca565b6141fc565b60006001600160e01b03198216639da99b3f60e01b1480610eae5750610eae82614237565b92915050565b600073__$e74cba849739aecfa9bf3b6281c0831878$__6302a251a36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f23919061519b565b905090565b60405163059e952b60e01b815260009073__$24ed9c895b3ab1d429967676414af5d94a$__9063059e952b90610f62908590600401615117565b602060405180830381865af4158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae91906151b4565b600080516020615990833981519152610fbb8161426c565b73__$e7d0f1dc0c8caff7791d9dd32970050ea7$__63bd88fe328373__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af415801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906151dd565b6040516001600160e01b031960e085901b168152600481019290925265ffffffffffff1660248201526044015b60006040518083038186803b15801561108857600080fd5b505af415801561109c573d6000803e3d6000fd5b505050505050565b604051630a0e74ef60e01b81526004810182905260009073__$36f22459ee3e33aa9c0be04d35fbeab80d$__90630a0e74ef906024015b602060405180830381865af41580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae919061519b565b604051630eca87fb60e01b81526004810182905260009073__$36f22459ee3e33aa9c0be04d35fbeab80d$__90630eca87fb906024016110db565b60405163033cdc2b60e31b81526004810182905260009073__$04e71bdb39671a9b319808db351dce05d3$__906319e6e158906024016110db565b60008061119d614279565b60009384526020525050604090206001015490565b60405163291605f760e01b81526004810182905260609073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063291605f790602401600060405180830381865af4158015611205573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eae919081019061525f565b61123682611192565b61123f8161426c565b611249838361429d565b50505050565b604051633009737760e01b81526004810182905260009073__$70f75f99fe6661499ece4b8956af59cd6c$__906330097377906024016110db565b6040516333727c4d60e01b81526004810182905260009073__$70f75f99fe6661499ece4b8956af59cd6c$__906333727c4d906024015b602060405180830381865af41580156112de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae91906153a2565b73__$70f75f99fe6661499ece4b8956af59cd6c$__6309d3c59b82611326846114a0565b600281111561133757611337614e91565b6113408561218f565b6040518463ffffffff1660e01b815260040161135e939291906153bd565b60006040518083038186803b15801561137657600080fd5b505af415801561138a573d6000803e3d6000fd5b5050505050565b6001600160a01b03811633146113ba5760405163334bd91960e11b815260040160405180910390fd5b6113c4828261433e565b505050565b73__$24ed9c895b3ab1d429967676414af5d94a$__63642998816113eb6143b6565b546001600160a01b031633846040518463ffffffff1660e01b815260040161135e939291906153d8565b600073__$24ed9c895b3ab1d429967676414af5d94a$__631f59dfd78461143b85613eb3565b6040518363ffffffff1660e01b8152600401611458929190615404565b602060405180830381865af4158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906153a2565b9392505050565b6040516368377f6d60e11b815260048101829052600090819073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063d06efeda90602401602060405180830381865af41580156114f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611519919061519b565b905080600003611544576040516333b4e31b60e21b8152600481018490526024015b60405180910390fd5b600073__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af415801561158f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b391906151dd565b65ffffffffffff169050600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__63d3a368bd866040518263ffffffff1660e01b81526004016115f891815260200190565b602060405180830381865af4158015611615573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611639919061519b565b905081811061164d57506000949350505050565b73__$04e71bdb39671a9b319808db351dce05d3$__63adf8652386611671866141c1565b6040518363ffffffff1660e01b815260040161168e929190615425565b602060405180830381865af41580156116ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cf91906153a2565b6116de57506001949350505050565b506002949350505050565b60405163412caf0b60e01b815260609073__$24ed9c895b3ab1d429967676414af5d94a$__9063412caf0b90611723908590600401615158565b600060405180830381865af4158015611740573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eae919081019061548e565b6040516342707a4360e01b8152600481018490526001600160a01b03831660248201526044810182905260009073__$04e71bdb39671a9b319808db351dce05d3$__906342707a4390606401602060405180830381865af41580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906153a2565b949350505050565b6040516321c2cb1960e11b815260009073__$04e71bdb39671a9b319808db351dce05d3$__9063438596329061145890869086906004016154c2565b60405163498d91bf60e01b81526004810182905260009073__$04e71bdb39671a9b319808db351dce05d3$__9063498d91bf906024016110db565b6040516325da8c0d60e11b815260009073__$04e71bdb39671a9b319808db351dce05d3$__90634bb5181a906118b09086908690600401615425565b602060405180830381865af41580156118cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611499919061519b565b606073__$95674d662a270791c819f82956386ae379$__634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865af415801561193c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f2391908101906154d9565b600061149983836140e6565b6119786143da565b61198182614481565b61198b8282614499565b5050565b600073__$e7d0f1dc0c8caff7791d9dd32970050ea7$__63a7713a706040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b60006119e461454d565b506000805160206159d083398151915290565b8051825114611a6c5760405162461bcd60e51b815260206004820152603b60248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f723a20617070732060448201527a0c2dcc840eecad2ced0e8e640d8cadccee8d040dad2e6dac2e8c6d602b1b606482015260840161153b565b6000825111611ad45760405162461bcd60e51b815260206004820152602e60248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f723a206e6f20617060448201526d3839903a37903b37ba32903337b960911b606482015260840161153b565b3063a461a94d33611aeb611ae6611c42565b614596565b6040518363ffffffff1660e01b8152600401611b08929190615404565b602060405180830381865afa158015611b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4991906153a2565b15611b6957336040516305b27abd60e01b815260040161153b9190615158565b6000611b736143b6565b600601546001600160a01b031690508015611c2a5760006001600160a01b0382166318be49d933611ba388613eb3565b6040518363ffffffff1660e01b8152600401611bc092919061550d565b602060405180830381865afa158015611bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c019190615526565b6001600160a01b031614611c2a573360405163640ed18360e01b815260040161153b9190615158565b611c3333613df9565b506112493385858560006145cd565b600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__63561b64ef6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b600080516020615a10833981519152611ca58161426c565b604051632b9f45b760e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__90632b9f45b790611070908590600401615158565b600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__63593728126040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b6000610eae610e6483613eb3565b600080516020615a10833981519152611d4d8161426c565b604051630e0bea3b60e21b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__9063382fa8ec90611070908590600401615158565b600080611d8f6143b6565b60010160009054906101000a90046001600160a01b03166001600160a01b031663c66966b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e07919061519b565b604051631f59dfd760e01b815290915073__$24ed9c895b3ab1d429967676414af5d94a$__90631f59dfd7906114589086908590600401615404565b6040516360c4247f60e01b81526004810182905260009073__$e7d0f1dc0c8caff7791d9dd32970050ea7$__906360c4247f906024016110db565b600073__$04e71bdb39671a9b319808db351dce05d3$__63628277336040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b6000611ed36143b6565b600601546001600160a01b031690508015801590611ef95750336001600160a01b038216145b611f575760405162461bcd60e51b815260206004820152602960248201527f58416c6c6f636174696f6e566f74696e673a206e6f74206e6176696761746f7260448201526820726567697374727960b81b606482015260840161153b565b604051632947884560e11b815273__$24ed9c895b3ab1d429967676414af5d94a$__9063528f108a90611f8e908590600401615158565b602060405180830381865af4158015611fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcf91906153a2565b1561198b5773__$24ed9c895b3ab1d429967676414af5d94a$__63217940a6308473__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af4158015612039573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205d91906151dd565b6040518463ffffffff1660e01b815260040161107093929190615543565b6000805160206159908339815191526120938161426c565b604051637403893560e01b81526004810183905273__$36f22459ee3e33aa9c0be04d35fbeab80d$__90637403893590602401611070565b600080516020615a108339815191526120e38161426c565b6040516332ea3f7360e11b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__906365d47ee690611070908590600401615158565b604051637ace248560e01b81526004810182905260609073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__90637ace248590602401611723565b604051632947884560e11b815260009073__$24ed9c895b3ab1d429967676414af5d94a$__9063528f108a906112c1908590600401615158565b60008061219b836114a0565b60028111156121ac576121ac614e91565b1492915050565b6000805160206159908339815191526121cb8161426c565b60405163041b3b0f60e51b81526004810183905273__$04e71bdb39671a9b319808db351dce05d3$__9063836761e090602401611070565b336001600160a01b0382161461222e573360405163065ece9760e51b815260040161153b9190615158565b60006122386143b6565b600601546001600160a01b031690508015612367576040516353127ad560e11b81526001600160a01b0382169063a624f5aa90612279908590600401615158565b602060405180830381865afa158015612296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ba91906153a2565b156122da5781604051638523c47f60e01b815260040161153b9190615158565b604051633e28391d60e01b81526001600160a01b03821690633e28391d90612306908590600401615158565b602060405180830381865afa158015612323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234791906153a2565b15612367578160405163640ed18360e01b815260040161153b9190615158565b73__$24ed9c895b3ab1d429967676414af5d94a$__63217940a6308473__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af4158015612039573d6000803e3d6000fd5b600073__$36f22459ee3e33aa9c0be04d35fbeab80d$__638ab52d4b6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b6040805160608101825260008082526020820181905281830152905163023c4c9f60e61b81526004810183905273__$ee22ebed0dbdcceb519aa1d808f0526e6a$__90638f1327c090602401606060405180830381865af4158015612480573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae919061556e565b6000806124af614279565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b600073__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af4158015612525573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2391906151dd565b6000805160206159908339815191526125618161426c565b604051631270590360e31b81526004810183905273__$e74cba849739aecfa9bf3b6281c0831878$__90639382c81890602401611070565b600073__$e7d0f1dc0c8caff7791d9dd32970050ea7$__6397c3d3346040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b604051639aeb962b60e01b815260009073__$04e71bdb39671a9b319808db351dce05d3$__90639aeb962b906112c1908590600401615158565b600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__639cbe5efd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b6000806126746143b6565b60010160009054906101000a90046001600160a01b03166001600160a01b031663c66966b76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ec919061519b565b60405163059e952b60e01b815290915073__$24ed9c895b3ab1d429967676414af5d94a$__9063059e952b90612726908490600401615117565b602060405180830381865af4158015612743573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276791906151b4565b91505090565b604051631f59dfd760e01b815260009073__$24ed9c895b3ab1d429967676414af5d94a$__90631f59dfd7906114589086908690600401615404565b60006127b36143b6565b60049081015460405163a56b576560e01b81526001600160a01b039091169163a56b5765916127e691879187910161550d565b602060405180830381865afa1580156118cd573d6000803e3d6000fd5b3063a461a94d83612816611ae685613eb3565b6040518363ffffffff1660e01b8152600401612833929190615404565b602060405180830381865afa158015612850573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287491906153a2565b6128935781604051632b8b7c8960e01b815260040161153b9190615158565b61289d81836145ec565b60006128a76143b6565b600301546001600160a01b031663d0ebb0ee846128c5611ae6611c42565b6040518363ffffffff1660e01b81526004016128e2929190615404565b600060405180830381865afa1580156128ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261292791908101906155df565b509050600073__$24ed9c895b3ab1d429967676414af5d94a$__63412caf0b856040518263ffffffff1660e01b81526004016129639190615158565b600060405180830381865af4158015612980573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129a8919081019061548e565b9050600080600073__$24ed9c895b3ab1d429967676414af5d94a$__63ea66e04a308989886040518563ffffffff1660e01b81526004016129ec949392919061562d565b600060405180830381865af4158015612a09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a31919081019061566a565b925092509250841580612a4357508251155b15612c6657604051632947884560e11b815273__$24ed9c895b3ab1d429967676414af5d94a$__9063528f108a90612a7f908a90600401615158565b602060405180830381865af4158015612a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac091906153a2565b15612c0b5773__$24ed9c895b3ab1d429967676414af5d94a$__63217940a6308973__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af4158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e91906151dd565b6040518463ffffffff1660e01b8152600401612b6c93929190615543565b60006040518083038186803b158015612b8457600080fd5b505af4158015612b98573d6000803e3d6000fd5b50505050612ba46143b6565b600501546040516373eff33960e11b81526001600160a01b039091169063e7dfe67290612bd8908990600190600401615425565b600060405180830381600087803b158015612bf257600080fd5b505af1158015612c06573d6000803e3d6000fd5b505050505b82516040805187151581526020810192909252810182905286906001600160a01b038916907f55b62c33ca46df94310e16fc7e52e8ed456d93a5f21b1e7b5b4c2428905ddebc9060600160405180910390a350505050505050565b612c748787858560016145cd565b50505050505050565b6000805160206159b0833981519152612c958161426c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460089190600160401b900460ff1680612cde575080546001600160401b03808416911610155b15612cfc5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b1781556001600160a01b038516612d875760405162461bcd60e51b815260206004820152602d60248201527f58416c6c6f636174696f6e566f74696e673a20696e76616c6964206e6176696760448201526c61746f7220726567697374727960981b606482015260840161153b565b60405163ce396b1f60e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__9063ce396b1f90612dbe908890600401615158565b60006040518083038186803b158015612dd657600080fd5b505af4158015612dea573d6000803e3d6000fd5b5050604051631270590360e31b81526004810187905273__$e74cba849739aecfa9bf3b6281c0831878$__9250639382c818915060240160006040518083038186803b158015612e3957600080fd5b505af4158015612e4d573d6000803e3d6000fd5b5050825460ff60401b1916835550506040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b600073__$e74cba849739aecfa9bf3b6281c0831878$__63abc517fd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b600080516020615a10833981519152612f028161426c565b60405163358e7d9760e21b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__9063d639f65c90611070908590600401615158565b600080516020615a10833981519152612f518161426c565b604051634784a11360e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__90634784a11390611070908590600401615158565b600073__$36f22459ee3e33aa9c0be04d35fbeab80d$__63bb7de6d46040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b60006000805160206159f0833981519152612fed8161426c565b6000339050600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__639cbe5efd6040518163ffffffff1660e01b8152600401602060405180830381865af415801561303d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613061919061519b565b905080156130e5576130728161218f565b156130e55760405162461bcd60e51b815260206004820152603f60248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f723a20746865726560448201527f2063616e206265206f6e6c79206f6e6520726f756e64207065722074696d6500606482015260840161153b565b60008111801561316657506040516333727c4d60e01b81526004810182905273__$70f75f99fe6661499ece4b8956af59cd6c$__906333727c4d90602401602060405180830381865af4158015613140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316491906153a2565b155b156131f85773__$70f75f99fe6661499ece4b8956af59cd6c$__6309d3c59b8261318f846114a0565b60028111156131a0576131a0614e91565b6131a98561218f565b6040518463ffffffff1660e01b81526004016131c7939291906153bd565b60006040518083038186803b1580156131df57600080fd5b505af41580156131f3573d6000803e3d6000fd5b505050505b60006132026143b6565b546040805163c04cff1960e01b815290516001600160a01b039092169163c04cff19916004808201926000929091908290030181865afa15801561324a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613272919081019061548e565b9050600073__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af41580156132bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e391906151dd565b9050600073__$e74cba849739aecfa9bf3b6281c0831878$__6302a251a36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613330573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613354919061519b565b9050600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__637ad59a23878585886040518563ffffffff1660e01b815260040161339594939291906156d6565b602060405180830381865af41580156133b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d6919061519b565b604051633ed9b0ff60e11b81526004810182905290915073__$36f22459ee3e33aa9c0be04d35fbeab80d$__90637db361fe9060240160006040518083038186803b15801561342457600080fd5b505af4158015613438573d6000803e3d6000fd5b505060405163059e952b60e01b81526000925073__$24ed9c895b3ab1d429967676414af5d94a$__915063059e952b90613476908790600401615117565b602060405180830381865af4158015613493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b791906151b4565b905060006134c36143b6565b600601546001600160a01b031690506000811561354c57604051630a5515e360e01b81526001600160a01b03831690630a5515e390613506908990600401615117565b602060405180830381865afa158015613523573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354791906151b4565b61354f565b60005b905060006135696001600160d01b0380841690861661572a565b9050606060006135776143b6565b600401546001600160a01b03169050801580159061359e57506000846001600160d01b0316115b1561360c57806001600160a01b0316635584c4f96040518163ffffffff1660e01b8152600401600060405180830381865afa1580156135e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613609919081019061548e565b91505b600083118061361c575060008251115b156136a257600061362b6143b6565b6005015460405163bfaabf3160e01b81526001600160a01b039091169150819063bfaabf319061366e908b9088906001600160d01b038b1690899060040161573d565b600060405180830381600087803b15801561368857600080fd5b505af115801561369c573d6000803e3d6000fd5b50505050505b50949b50505050505050505050505090565b6136c7816136c2600061466a565b61468d565b5060006136d26143b6565b600601546001600160a01b0316905060006136ec83613eb3565b90506000826001600160a01b03166318be49d986846040518363ffffffff1660e01b815260040161371e92919061550d565b602060405180830381865afa15801561373b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375f9190615526565b90506001600160a01b03811661378a5784604051630d1c9abb60e31b815260040161153b9190615158565b60006137946143b6565b600501546001600160a01b031690506137ac826146cc565b1561384857604051637b8fee0b60e11b81526001600160a01b0382169063f71fdc16906137df9088908a906004016154c2565b600060405180830381600087803b1580156137f957600080fd5b505af115801561380d573d6000803e3d6000fd5b5050505084826001600160a01b0316876001600160a01b031660008051602061597083398151915260405160405180910390a4505050505050565b604051630e53e11560e21b81526001600160a01b0385169063394f845490613876908590899060040161550d565b602060405180830381865afa158015613893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b791906153a2565b6138f2576138c485614724565b604051637b8fee0b60e11b81526001600160a01b0382169063f71fdc16906137df9088908a906004016154c2565b60006138fc6143b6565b600301546001600160a01b031663d0ebb0ee8861391887614596565b6040518363ffffffff1660e01b8152600401613935929190615404565b600060405180830381865afa158015613952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261397a91908101906155df565b50905080613a1a57604051637b8fee0b60e11b81526001600160a01b0383169063f71fdc16906139b09089908b906004016154c2565b600060405180830381600087803b1580156139ca57600080fd5b505af11580156139de573d6000803e3d6000fd5b5050505085836001600160a01b0316886001600160a01b031660008051602061597083398151915260405160405180910390a450505050505050565b613a2486886145ec565b600080866001600160a01b031663f232dd60868a6040518363ffffffff1660e01b8152600401613a5592919061550d565b600060405180830381865afa158015613a72573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613a9a9190810190615762565b915091506000876001600160a01b031663c61c06e78b896040518363ffffffff1660e01b8152600401613ace92919061550d565b602060405180830381865afa158015613aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0f919061519b565b90506000886001600160a01b031663e1f1c4a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b75919061519b565b9050600083516001600160401b03811115613b9257613b92614d35565b604051908082528060200260200182016040528015613bbb578160200160208202803683370190505b5090506000805b8551811015613c525783868281518110613bde57613bde6157bb565b602002602001015186613bf191906157d1565b613bfb91906157e8565b838281518110613c0d57613c0d6157bb565b602002602001018181525050828181518110613c2b57613c2b6157bb565b602002602001015182613c3e919061572a565b915080613c4a8161580a565b915050613bc2565b508381108015613c63575060008251115b15613c9d57613c728185615823565b82600081518110613c8557613c856157bb565b60200260200101818151613c99919061572a565b9052505b613cac8d8d8885886000614837565b6001600160a01b038816636cf88e73338f8f60006040518563ffffffff1660e01b8152600401613cdf9493929190615836565b600060405180830381600087803b158015613cf957600080fd5b505af1158015613d0d573d6000803e3d6000fd5b505050508b896001600160a01b03168e6001600160a01b03167f28e698009c3f75a566409d95005b1906bbae152060ccf899a822777dd147950c8986604051613d57929190615874565b60405180910390a450505050505050505050505050565b604051630bed730160e41b815260009073__$04e71bdb39671a9b319808db351dce05d3$__9063bed73010906118b09086908690600401615425565b600080516020615a10833981519152613dc28161426c565b604051637d4b948360e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__90637d4b948390611070908590600401615158565b6000806000613e066143b6565b600301546001600160a01b031663d0ebb0ee85613e24611ae6611c42565b6040518363ffffffff1660e01b8152600401613e41929190615404565b600060405180830381865afa158015613e5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e8691908101906155df565b9150915081613eac5783816040516344c4534960e01b815260040161153b929190615899565b5092915050565b6040516368377f6d60e11b81526004810182905260009073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063d06efeda906024016110db565b60405163d3a368bd60e01b81526004810182905260009073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063d3a368bd906024016110db565b600073__$04e71bdb39671a9b319808db351dce05d3$__63754ba25d83613f52610e6486613eb3565b6040518363ffffffff1660e01b81526004016112c1929190615425565b613f7882611192565b613f818161426c565b611249838361433e565b6000613f956143b6565b546001600160a01b031663d2570b9484613fae85613eb3565b6040518363ffffffff1660e01b8152600401613fcb929190615425565b602060405180830381865afa158015611475573d6000803e3d6000fd5b6000613ff26143b6565b600601546001600160a01b0316919050565b60008051602061599083398151915261401c8161426c565b73__$e74cba849739aecfa9bf3b6281c0831878$__630ff235a98361403f6143b6565b60010160009054906101000a90046001600160a01b03166001600160a01b0316635bec4cb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015614093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140b7919061519b565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401611070565b604051633ae4067560e21b815260009073__$95674d662a270791c819f82956386ae379$__9063eb9019d4906118b0908690869060040161550d565b600080516020615a1083398151915261413a8161426c565b60405163ce396b1f60e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__9063ce396b1f90611070908590600401615158565b6000805160206159908339815191526141898161426c565b604051637afd709b60e11b81526004810183905273__$36f22459ee3e33aa9c0be04d35fbeab80d$__9063f5fae13690602401611070565b604051637c672b0560e11b81526004810182905260009073__$e7d0f1dc0c8caff7791d9dd32970050ea7$__9063f8ce560a906024016110db565b60405163fb03ec6f60e01b81526004810182905260009073__$04e71bdb39671a9b319808db351dce05d3$__9063fb03ec6f906024016110db565b60006001600160e01b03198216637965db0b60e01b1480610eae57506301ffc9a760e01b6001600160e01b0319831614610eae565b6142768133614981565b50565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b6000806142a8614279565b90506142b484846124a4565b614334576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556142ea3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610eae565b6000915050610eae565b600080614349614279565b905061435584846124a4565b15614334576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610eae565b7f1da8cbbb2b12987a437595605432a6bbe84c08e9685afaaee593f05659f50d0090565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061446157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166144556000805160206159d0833981519152546001600160a01b031690565b6001600160a01b031614155b1561447f5760405163703e46dd60e11b815260040160405180910390fd5b565b6000805160206159b083398151915261198b8161426c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156144f3575060408051601f3d908101601f191682019092526144f09181019061519b565b60015b6145125781604051634c9c8ce360e01b815260040161153b9190615158565b6000805160206159d0833981519152811461454357604051632a87526960e21b81526004810182905260240161153b565b6113c483836149ac565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461447f5760405163703e46dd60e11b815260040160405180910390fd5b600065ffffffffffff8211156145c9576040516306dfcc6560e41b8152603060048201526024810183905260440161153b565b5090565b60006145dc86610dc087613eb3565b905061109c868686868587614837565b6145f46143b6565b600501546001600160a01b031663e5ed920b8383336040516001600160e01b031960e086901b16815260048101939093526001600160a01b03918216602484015216604482015260640160006040518083038186803b15801561465657600080fd5b505afa15801561109c573d6000803e3d6000fd5b600081600281111561467e5761467e614e91565b600160ff919091161b92915050565b600080614699846114a0565b90506000836146a78361466a565b1603611499578381846040516321b2b5ab60e11b815260040161153b939291906158bd565b60006146d66143b6565b6006015460405163506b90db60e11b81526001600160a01b039091169063a0d721b690614707908590600401615158565b602060405180830381865afa1580156112de573d6000803e3d6000fd5b60405163d3a368bd60e01b81526004810182905260009073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063d3a368bd90602401602060405180830381865af4158015614777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061479b919061519b565b90508073__$e74cba849739aecfa9bf3b6281c0831878$__63abc517fd6040518163ffffffff1660e01b8152600401602060405180830381865af41580156147e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061480b919061519b565b614815904361572a565b101561198b5760405163474a8edb60e11b81526004810183905260240161153b565b614845856136c2600061466a565b5073__$04e71bdb39671a9b319808db351dce05d3$__63cdc6ac0c868887878761486e8c613eb3565b6040518763ffffffff1660e01b815260040161488f969594939291906158df565b60006040518083038186803b1580156148a757600080fd5b505af41580156148bb573d6000803e3d6000fd5b50505050801561109c576148cd6143b6565b600501546001600160a01b0316636cf88e7333888860006040518563ffffffff1660e01b81526004016149039493929190615836565b600060405180830381600087803b15801561491d57600080fd5b505af1158015614931573d6000803e3d6000fd5b5050505084866001600160a01b03167f64dbcb1d23926d04f2fea8c7cc3f5d02846ee1e48940419cf422f69ae35813aa8686604051614971929190615874565b60405180910390a3505050505050565b61498b82826124a4565b61198b57808260405163e2517d3f60e01b815260040161153b92919061550d565b6149b582614a02565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156149fa576113c48282614a5e565b61198b614ad4565b806001600160a01b03163b600003614a2f5780604051634c9c8ce360e01b815260040161153b9190615158565b6000805160206159d083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051614a7b9190615953565b600060405180830381855af49150503d8060008114614ab6576040519150601f19603f3d011682016040523d82523d6000602084013e614abb565b606091505b5091509150614acb858383614af3565b95945050505050565b341561447f5760405163b398979f60e01b815260040160405180910390fd5b606082614b0857614b0382614b46565b611499565b8151158015614b1f57506001600160a01b0384163b155b15614b3f5783604051639996b31560e01b815260040161153b9190615158565b5080611499565b805115614b565780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215614b8157600080fd5b81356001600160e01b03198116811461149957600080fd5b65ffffffffffff8116811461427657600080fd5b600060208284031215614bbf57600080fd5b813561149981614b99565b600060208284031215614bdc57600080fd5b5035919050565b60005b83811015614bfe578181015183820152602001614be6565b50506000910152565b60008151808452614c1f816020860160208601614be3565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015614ce257888303603f19018552815180518452878101516001600160a01b0316888501528681015160c088860181905290614c9b82870182614c07565b91505060608083015186830382880152614cb58382614c07565b6080858101519089015260a094850151151594909701939093525050509386019390860190600101614c5a565b509098975050505050505050565b6001600160a01b038116811461427657600080fd5b60008060408385031215614d1857600080fd5b823591506020830135614d2a81614cf0565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715614d6d57614d6d614d35565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614d9b57614d9b614d35565b604052919050565b60006001600160401b03821115614dbc57614dbc614d35565b5060051b60200190565b600082601f830112614dd757600080fd5b81356020614dec614de783614da3565b614d73565b82815260059290921b84018101918181019086841115614e0b57600080fd5b8286015b84811015614e265780358352918301918301614e0f565b509695505050505050565b600060208284031215614e4357600080fd5b81356001600160401b03811115614e5957600080fd5b6117f584828501614dc6565b60008060408385031215614e7857600080fd5b8235614e8381614cf0565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb757614eb7614e91565b9052565b60208101610eae8284614ea7565b600060208284031215614edb57600080fd5b813561149981614cf0565b600081518084526020808501945080840160005b83811015614f1657815187529582019590820190600101614efa565b509495945050505050565b6020815260006114996020830184614ee6565b600080600060608486031215614f4957600080fd5b833592506020840135614f5b81614cf0565b929592945050506040919091013590565b60008060408385031215614f7f57600080fd5b50508035926020909101359150565b6020815260006114996020830184614c07565b60006001600160401b03821115614fba57614fba614d35565b50601f01601f191660200190565b60008060408385031215614fdb57600080fd5b8235614fe681614cf0565b915060208301356001600160401b0381111561500157600080fd5b8301601f8101851361501257600080fd5b8035615020614de782614fa1565b81815286602083850101111561503557600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008060006060848603121561506a57600080fd5b833592506020808501356001600160401b038082111561508957600080fd5b61509588838901614dc6565b945060408701359150808211156150ab57600080fd5b508501601f810187136150bd57600080fd5b80356150cb614de782614da3565b81815260059190911b820183019083810190898311156150ea57600080fd5b928401925b82841015615108578335825292840192908401906150ef565b80955050505050509250925092565b65ffffffffffff91909116815260200190565b6000806040838503121561513d57600080fd5b823561514881614cf0565b91506020830135614d2a81614b99565b6001600160a01b0391909116815260200190565b63ffffffff8116811461427657600080fd5b60006020828403121561519057600080fd5b81356114998161516c565b6000602082840312156151ad57600080fd5b5051919050565b6000602082840312156151c657600080fd5b81516001600160d01b038116811461149957600080fd5b6000602082840312156151ef57600080fd5b815161149981614b99565b805161520581614cf0565b919050565b600082601f83011261521b57600080fd5b8151615229614de782614fa1565b81815284602083860101111561523e57600080fd5b6117f5826020830160208701614be3565b8051801515811461520557600080fd5b6000602080838503121561527257600080fd5b82516001600160401b038082111561528957600080fd5b818501915085601f83011261529d57600080fd5b81516152ab614de782614da3565b81815260059190911b830184019084810190888311156152ca57600080fd5b8585015b83811015615395578051858111156152e557600080fd5b860160c0818c03601f190112156152fc5760008081fd5b615304614d4b565b88820151815260406153178184016151fa565b8a8301526060808401518981111561532f5760008081fd5b61533d8f8d8388010161520a565b83850152506080915081840151898111156153585760008081fd5b6153668f8d8388010161520a565b82850152505060a0808401518284015261538260c0850161524f565b90830152508452509186019186016152ce565b5098975050505050505050565b6000602082840312156153b457600080fd5b6114998261524f565b92835260ff9190911660208301521515604082015260600190565b6001600160a01b03848116825283166020820152606060408201819052600090614acb90830184614ee6565b6001600160a01b0392909216825265ffffffffffff16602082015260400190565b918252602082015260400190565b600082601f83011261544457600080fd5b81516020615454614de783614da3565b82815260059290921b8401810191818101908684111561547357600080fd5b8286015b84811015614e265780518352918301918301615477565b6000602082840312156154a057600080fd5b81516001600160401b038111156154b657600080fd5b6117f584828501615433565b9182526001600160a01b0316602082015260400190565b6000602082840312156154eb57600080fd5b81516001600160401b0381111561550157600080fd5b6117f58482850161520a565b6001600160a01b03929092168252602082015260400190565b60006020828403121561553857600080fd5b815161149981614cf0565b6001600160a01b03938416815291909216602082015265ffffffffffff909116604082015260600190565b60006060828403121561558057600080fd5b604051606081016001600160401b03811182821017156155a2576155a2614d35565b60405282516155b081614cf0565b815260208301516155c081614b99565b602082015260408301516155d38161516c565b60408201529392505050565b600080604083850312156155f257600080fd5b6155fb8361524f565b60208401519092506001600160401b0381111561561757600080fd5b6156238582860161520a565b9150509250929050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061566090830184614ee6565b9695505050505050565b60008060006060848603121561567f57600080fd5b83516001600160401b038082111561569657600080fd5b6156a287838801615433565b945060208601519150808211156156b857600080fd5b506156c586828701615433565b925050604084015190509250925092565b6001600160a01b038516815265ffffffffffff8416602082015263ffffffff8316604082015260806060820181905260009061566090830184614ee6565b634e487b7160e01b600052601160045260246000fd5b80820180821115610eae57610eae615714565b8481528360208201528260408201526080606082015260006156606080830184614ee6565b6000806040838503121561577557600080fd5b82516001600160401b038082111561578c57600080fd5b61579886838701615433565b935060208501519150808211156157ae57600080fd5b5061562385828601615433565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610eae57610eae615714565b60008261580557634e487b7160e01b600052601260045260246000fd5b500490565b60006001820161581c5761581c615714565b5060010190565b81810381811115610eae57610eae615714565b6001600160a01b0385811682528416602082015260408101839052608081016002831061586557615865614e91565b82606083015295945050505050565b6040815260006158876040830185614ee6565b8281036020840152614acb8185614ee6565b6001600160a01b03831681526040602082018190526000906117f590830184614c07565b838152606081016158d16020830185614ea7565b826040830152949350505050565b8681526000602060018060a01b0388168184015260c0604084015261590760c0840188614ee6565b838103606085015286518082528288019183019060005b8181101561593a5783518352928401929184019160010161591e565b5050608085019690965250505060a00152949350505050565b60008251615965818460208701614be3565b919091019291505056fe8e8addaac431662b768d45375ef48133b8bad0daad5ce4096fd41007e8d31a8771840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc2b53661063988f1ad36e0a49d4d9a6a3106652aaeed2be542c8691d5f5fd168b56af926aa3845d4dc63a6c773ed36f51794728c97ebcd1bf845bcecb16eeb6b7a2646970667358221220d5c7dd6d1113b2bdc8640a203047b96ae10ec6751a01dd2a2901eaef3fbd7aa264736f6c63430008140033",
  "deployedBytecode": "0x6080604052600436106103c55760003560e01c806301ffc9a7146103ca57806302a251a3146103ff578063059e952b1461042257806306f3f9e61461045a5780630a0e74ef1461047c5780630eca87fb1461049c57806319e6e158146104bc578063248a9ca3146104dc578063291605f7146104fc5780632f2ff15d14610529578063300973771461054957806333727c4d146105695780633469f6e21461058957806336568abe146105a95780633b395cbe146105c95780633d4fd3c7146105e95780633e4f49e614610609578063412caf0b1461063657806342707a43146106635780634385963214610683578063498d91bf146106a35780634bb5181a146106c35780634bf5d7e9146106e35780634cadad2f146107055780634f1ef286146107255780634fa76ec91461073857806352d1902d1461074d57806353ed63991461076257806354fd4d5014610782578063561b64ef146107ac57806357181609146107c157806359372812146107e157806359529edd146107f65780635dbdba6e146108165780635fb263671461083657806360c4247f146108565780636282773314610876578063673fc7241461088b57806374038935146108ab57806378a81336146108cb5780637ace2485146108eb578063802d27091461090b57806382afd23b1461092b578063836761e01461094b5780638a829eda1461096b5780638ab52d4b1461098b5780638f1327c0146109a057806391d14854146109f957806391ddadf414610a195780639382c81814610a3b578063952f213314610a5b57806397c3d33414610a7d5780639aeb962b14610a925780639cbe5efd14610ab2578063a022756b14610ac7578063a217fddf14610adc578063a461a94d14610af1578063a56b576514610b11578063a5ae08e914610b31578063a7713a7014610738578063aa86328614610b51578063abc517fd14610b71578063ad3cb1cc14610b86578063b25d6f6214610bb7578063b3c93dab14610bd7578063bb7de6d414610bf7578063bd85948c14610c0c578063be2a9f8f14610c21578063bed7301014610c41578063c048f6c914610c61578063cd669a7214610c81578063cfea80ed14610ca3578063d06efeda14610cc3578063d3a368bd14610ce3578063d4a8dd9814610d03578063d547741f14610d23578063d68b4c3614610d43578063e125f74e14610d63578063e540d01d14610d85578063eb9019d414610da5578063f36c8f5c14610dc5578063f530108f14610de7578063f5fae13614610e07578063f72c0d8b14610e27578063f8ce560a14610e49578063fb03ec6f14610e69575b600080fd5b3480156103d657600080fd5b506103ea6103e5366004614b6f565b610e89565b60405190151581526020015b60405180910390f35b34801561040b57600080fd5b50610414610eb4565b6040519081526020016103f6565b34801561042e57600080fd5b5061044261043d366004614bad565b610f28565b6040516001600160d01b0390911681526020016103f6565b34801561046657600080fd5b5061047a610475366004614bca565b610fa3565b005b34801561048857600080fd5b50610414610497366004614bca565b6110a4565b3480156104a857600080fd5b506104146104b7366004614bca565b61111c565b3480156104c857600080fd5b506104146104d7366004614bca565b611157565b3480156104e857600080fd5b506104146104f7366004614bca565b611192565b34801561050857600080fd5b5061051c610517366004614bca565b6111b2565b6040516103f69190614c33565b34801561053557600080fd5b5061047a610544366004614d05565b61122d565b34801561055557600080fd5b50610414610564366004614bca565b61124f565b34801561057557600080fd5b506103ea610584366004614bca565b61128a565b34801561059557600080fd5b5061047a6105a4366004614bca565b611302565b3480156105b557600080fd5b5061047a6105c4366004614d05565b611391565b3480156105d557600080fd5b5061047a6105e4366004614e31565b6113c9565b3480156105f557600080fd5b506103ea610604366004614e65565b611415565b34801561061557600080fd5b50610629610624366004614bca565b6114a0565b6040516103f69190614ebb565b34801561064257600080fd5b50610656610651366004614ec9565b6116e9565b6040516103f69190614f21565b34801561066f57600080fd5b506103ea61067e366004614f34565b611768565b34801561068f57600080fd5b506103ea61069e366004614d05565b6117fd565b3480156106af57600080fd5b506104146106be366004614bca565b611839565b3480156106cf57600080fd5b506104146106de366004614f6c565b611874565b3480156106ef57600080fd5b506106f86118f1565b6040516103f69190614f8e565b34801561071157600080fd5b50610414610720366004614e65565b611964565b61047a610733366004614fc8565b611970565b34801561074457600080fd5b5061041461198f565b34801561075957600080fd5b506104146119da565b34801561076e57600080fd5b5061047a61077d366004615055565b6119f7565b34801561078e57600080fd5b506040805180820190915260018152603960f81b60208201526106f8565b3480156107b857600080fd5b50610414611c42565b3480156107cd57600080fd5b5061047a6107dc366004614ec9565b611c8d565b3480156107ed57600080fd5b50610414611cdc565b34801561080257600080fd5b50610414610811366004614bca565b611d27565b34801561082257600080fd5b5061047a610831366004614ec9565b611d35565b34801561084257600080fd5b506103ea610851366004614ec9565b611d84565b34801561086257600080fd5b50610414610871366004614bca565b611e43565b34801561088257600080fd5b50610414611e7e565b34801561089757600080fd5b5061047a6108a6366004614ec9565b611ec9565b3480156108b757600080fd5b5061047a6108c6366004614bca565b61207b565b3480156108d757600080fd5b5061047a6108e6366004614ec9565b6120cb565b3480156108f757600080fd5b50610656610906366004614bca565b61211a565b34801561091757600080fd5b506103ea610926366004614ec9565b612155565b34801561093757600080fd5b506103ea610946366004614bca565b61218f565b34801561095757600080fd5b5061047a610966366004614bca565b6121b3565b34801561097757600080fd5b5061047a610986366004614ec9565b612203565b34801561099757600080fd5b506104146123cc565b3480156109ac57600080fd5b506109c06109bb366004614bca565b612417565b6040805182516001600160a01b0316815260208084015165ffffffffffff16908201529181015163ffffffff16908201526060016103f6565b348015610a0557600080fd5b506103ea610a14366004614d05565b6124a4565b348015610a2557600080fd5b50610a2e6124da565b6040516103f69190615117565b348015610a4757600080fd5b5061047a610a56366004614bca565b612549565b348015610a6757600080fd5b50610414600080516020615a1083398151915281565b348015610a8957600080fd5b50610414612599565b348015610a9e57600080fd5b506103ea610aad366004614ec9565b6125e4565b348015610abe57600080fd5b5061041461261e565b348015610ad357600080fd5b50610442612669565b348015610ae857600080fd5b50610414600081565b348015610afd57600080fd5b506103ea610b0c36600461512a565b61276d565b348015610b1d57600080fd5b50610414610b2c366004614e65565b6127a9565b348015610b3d57600080fd5b5061047a610b4c366004614e65565b612803565b348015610b5d57600080fd5b5061047a610b6c366004614e65565b612c7d565b348015610b7d57600080fd5b50610414612e9f565b348015610b9257600080fd5b506106f8604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610bc357600080fd5b5061047a610bd2366004614ec9565b612eea565b348015610be357600080fd5b5061047a610bf2366004614ec9565b612f39565b348015610c0357600080fd5b50610414612f88565b348015610c1857600080fd5b50610414612fd3565b348015610c2d57600080fd5b5061047a610c3c366004614e65565b6136b4565b348015610c4d57600080fd5b50610414610c5c366004614f6c565b613d6e565b348015610c6d57600080fd5b5061047a610c7c366004614ec9565b613daa565b348015610c8d57600080fd5b506104146000805160206159f083398151915281565b348015610caf57600080fd5b506103ea610cbe366004614ec9565b613df9565b348015610ccf57600080fd5b50610414610cde366004614bca565b613eb3565b348015610cef57600080fd5b50610414610cfe366004614bca565b613eee565b348015610d0f57600080fd5b506103ea610d1e366004614bca565b613f29565b348015610d2f57600080fd5b5061047a610d3e366004614d05565b613f6f565b348015610d4f57600080fd5b506103ea610d5e366004614f6c565b613f8b565b348015610d6f57600080fd5b50610d78613fe8565b6040516103f69190615158565b348015610d9157600080fd5b5061047a610da036600461517e565b614004565b348015610db157600080fd5b50610414610dc0366004614e65565b6140e6565b348015610dd157600080fd5b5061041460008051602061599083398151915281565b348015610df357600080fd5b5061047a610e02366004614ec9565b614122565b348015610e1357600080fd5b5061047a610e22366004614bca565b614171565b348015610e3357600080fd5b506104146000805160206159b083398151915281565b348015610e5557600080fd5b50610414610e64366004614bca565b6141c1565b348015610e7557600080fd5b50610414610e84366004614bca565b6141fc565b60006001600160e01b03198216639da99b3f60e01b1480610eae5750610eae82614237565b92915050565b600073__$e74cba849739aecfa9bf3b6281c0831878$__6302a251a36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f23919061519b565b905090565b60405163059e952b60e01b815260009073__$24ed9c895b3ab1d429967676414af5d94a$__9063059e952b90610f62908590600401615117565b602060405180830381865af4158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae91906151b4565b600080516020615990833981519152610fbb8161426c565b73__$e7d0f1dc0c8caff7791d9dd32970050ea7$__63bd88fe328373__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af415801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906151dd565b6040516001600160e01b031960e085901b168152600481019290925265ffffffffffff1660248201526044015b60006040518083038186803b15801561108857600080fd5b505af415801561109c573d6000803e3d6000fd5b505050505050565b604051630a0e74ef60e01b81526004810182905260009073__$36f22459ee3e33aa9c0be04d35fbeab80d$__90630a0e74ef906024015b602060405180830381865af41580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae919061519b565b604051630eca87fb60e01b81526004810182905260009073__$36f22459ee3e33aa9c0be04d35fbeab80d$__90630eca87fb906024016110db565b60405163033cdc2b60e31b81526004810182905260009073__$04e71bdb39671a9b319808db351dce05d3$__906319e6e158906024016110db565b60008061119d614279565b60009384526020525050604090206001015490565b60405163291605f760e01b81526004810182905260609073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063291605f790602401600060405180830381865af4158015611205573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eae919081019061525f565b61123682611192565b61123f8161426c565b611249838361429d565b50505050565b604051633009737760e01b81526004810182905260009073__$70f75f99fe6661499ece4b8956af59cd6c$__906330097377906024016110db565b6040516333727c4d60e01b81526004810182905260009073__$70f75f99fe6661499ece4b8956af59cd6c$__906333727c4d906024015b602060405180830381865af41580156112de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae91906153a2565b73__$70f75f99fe6661499ece4b8956af59cd6c$__6309d3c59b82611326846114a0565b600281111561133757611337614e91565b6113408561218f565b6040518463ffffffff1660e01b815260040161135e939291906153bd565b60006040518083038186803b15801561137657600080fd5b505af415801561138a573d6000803e3d6000fd5b5050505050565b6001600160a01b03811633146113ba5760405163334bd91960e11b815260040160405180910390fd5b6113c4828261433e565b505050565b73__$24ed9c895b3ab1d429967676414af5d94a$__63642998816113eb6143b6565b546001600160a01b031633846040518463ffffffff1660e01b815260040161135e939291906153d8565b600073__$24ed9c895b3ab1d429967676414af5d94a$__631f59dfd78461143b85613eb3565b6040518363ffffffff1660e01b8152600401611458929190615404565b602060405180830381865af4158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906153a2565b9392505050565b6040516368377f6d60e11b815260048101829052600090819073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063d06efeda90602401602060405180830381865af41580156114f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611519919061519b565b905080600003611544576040516333b4e31b60e21b8152600481018490526024015b60405180910390fd5b600073__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af415801561158f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b391906151dd565b65ffffffffffff169050600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__63d3a368bd866040518263ffffffff1660e01b81526004016115f891815260200190565b602060405180830381865af4158015611615573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611639919061519b565b905081811061164d57506000949350505050565b73__$04e71bdb39671a9b319808db351dce05d3$__63adf8652386611671866141c1565b6040518363ffffffff1660e01b815260040161168e929190615425565b602060405180830381865af41580156116ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cf91906153a2565b6116de57506001949350505050565b506002949350505050565b60405163412caf0b60e01b815260609073__$24ed9c895b3ab1d429967676414af5d94a$__9063412caf0b90611723908590600401615158565b600060405180830381865af4158015611740573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eae919081019061548e565b6040516342707a4360e01b8152600481018490526001600160a01b03831660248201526044810182905260009073__$04e71bdb39671a9b319808db351dce05d3$__906342707a4390606401602060405180830381865af41580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906153a2565b949350505050565b6040516321c2cb1960e11b815260009073__$04e71bdb39671a9b319808db351dce05d3$__9063438596329061145890869086906004016154c2565b60405163498d91bf60e01b81526004810182905260009073__$04e71bdb39671a9b319808db351dce05d3$__9063498d91bf906024016110db565b6040516325da8c0d60e11b815260009073__$04e71bdb39671a9b319808db351dce05d3$__90634bb5181a906118b09086908690600401615425565b602060405180830381865af41580156118cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611499919061519b565b606073__$95674d662a270791c819f82956386ae379$__634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865af415801561193c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f2391908101906154d9565b600061149983836140e6565b6119786143da565b61198182614481565b61198b8282614499565b5050565b600073__$e7d0f1dc0c8caff7791d9dd32970050ea7$__63a7713a706040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b60006119e461454d565b506000805160206159d083398151915290565b8051825114611a6c5760405162461bcd60e51b815260206004820152603b60248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f723a20617070732060448201527a0c2dcc840eecad2ced0e8e640d8cadccee8d040dad2e6dac2e8c6d602b1b606482015260840161153b565b6000825111611ad45760405162461bcd60e51b815260206004820152602e60248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f723a206e6f20617060448201526d3839903a37903b37ba32903337b960911b606482015260840161153b565b3063a461a94d33611aeb611ae6611c42565b614596565b6040518363ffffffff1660e01b8152600401611b08929190615404565b602060405180830381865afa158015611b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4991906153a2565b15611b6957336040516305b27abd60e01b815260040161153b9190615158565b6000611b736143b6565b600601546001600160a01b031690508015611c2a5760006001600160a01b0382166318be49d933611ba388613eb3565b6040518363ffffffff1660e01b8152600401611bc092919061550d565b602060405180830381865afa158015611bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c019190615526565b6001600160a01b031614611c2a573360405163640ed18360e01b815260040161153b9190615158565b611c3333613df9565b506112493385858560006145cd565b600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__63561b64ef6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b600080516020615a10833981519152611ca58161426c565b604051632b9f45b760e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__90632b9f45b790611070908590600401615158565b600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__63593728126040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b6000610eae610e6483613eb3565b600080516020615a10833981519152611d4d8161426c565b604051630e0bea3b60e21b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__9063382fa8ec90611070908590600401615158565b600080611d8f6143b6565b60010160009054906101000a90046001600160a01b03166001600160a01b031663c66966b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e07919061519b565b604051631f59dfd760e01b815290915073__$24ed9c895b3ab1d429967676414af5d94a$__90631f59dfd7906114589086908590600401615404565b6040516360c4247f60e01b81526004810182905260009073__$e7d0f1dc0c8caff7791d9dd32970050ea7$__906360c4247f906024016110db565b600073__$04e71bdb39671a9b319808db351dce05d3$__63628277336040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b6000611ed36143b6565b600601546001600160a01b031690508015801590611ef95750336001600160a01b038216145b611f575760405162461bcd60e51b815260206004820152602960248201527f58416c6c6f636174696f6e566f74696e673a206e6f74206e6176696761746f7260448201526820726567697374727960b81b606482015260840161153b565b604051632947884560e11b815273__$24ed9c895b3ab1d429967676414af5d94a$__9063528f108a90611f8e908590600401615158565b602060405180830381865af4158015611fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcf91906153a2565b1561198b5773__$24ed9c895b3ab1d429967676414af5d94a$__63217940a6308473__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af4158015612039573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205d91906151dd565b6040518463ffffffff1660e01b815260040161107093929190615543565b6000805160206159908339815191526120938161426c565b604051637403893560e01b81526004810183905273__$36f22459ee3e33aa9c0be04d35fbeab80d$__90637403893590602401611070565b600080516020615a108339815191526120e38161426c565b6040516332ea3f7360e11b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__906365d47ee690611070908590600401615158565b604051637ace248560e01b81526004810182905260609073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__90637ace248590602401611723565b604051632947884560e11b815260009073__$24ed9c895b3ab1d429967676414af5d94a$__9063528f108a906112c1908590600401615158565b60008061219b836114a0565b60028111156121ac576121ac614e91565b1492915050565b6000805160206159908339815191526121cb8161426c565b60405163041b3b0f60e51b81526004810183905273__$04e71bdb39671a9b319808db351dce05d3$__9063836761e090602401611070565b336001600160a01b0382161461222e573360405163065ece9760e51b815260040161153b9190615158565b60006122386143b6565b600601546001600160a01b031690508015612367576040516353127ad560e11b81526001600160a01b0382169063a624f5aa90612279908590600401615158565b602060405180830381865afa158015612296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ba91906153a2565b156122da5781604051638523c47f60e01b815260040161153b9190615158565b604051633e28391d60e01b81526001600160a01b03821690633e28391d90612306908590600401615158565b602060405180830381865afa158015612323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234791906153a2565b15612367578160405163640ed18360e01b815260040161153b9190615158565b73__$24ed9c895b3ab1d429967676414af5d94a$__63217940a6308473__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af4158015612039573d6000803e3d6000fd5b600073__$36f22459ee3e33aa9c0be04d35fbeab80d$__638ab52d4b6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b6040805160608101825260008082526020820181905281830152905163023c4c9f60e61b81526004810183905273__$ee22ebed0dbdcceb519aa1d808f0526e6a$__90638f1327c090602401606060405180830381865af4158015612480573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae919061556e565b6000806124af614279565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b600073__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af4158015612525573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2391906151dd565b6000805160206159908339815191526125618161426c565b604051631270590360e31b81526004810183905273__$e74cba849739aecfa9bf3b6281c0831878$__90639382c81890602401611070565b600073__$e7d0f1dc0c8caff7791d9dd32970050ea7$__6397c3d3346040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b604051639aeb962b60e01b815260009073__$04e71bdb39671a9b319808db351dce05d3$__90639aeb962b906112c1908590600401615158565b600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__639cbe5efd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b6000806126746143b6565b60010160009054906101000a90046001600160a01b03166001600160a01b031663c66966b76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ec919061519b565b60405163059e952b60e01b815290915073__$24ed9c895b3ab1d429967676414af5d94a$__9063059e952b90612726908490600401615117565b602060405180830381865af4158015612743573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276791906151b4565b91505090565b604051631f59dfd760e01b815260009073__$24ed9c895b3ab1d429967676414af5d94a$__90631f59dfd7906114589086908690600401615404565b60006127b36143b6565b60049081015460405163a56b576560e01b81526001600160a01b039091169163a56b5765916127e691879187910161550d565b602060405180830381865afa1580156118cd573d6000803e3d6000fd5b3063a461a94d83612816611ae685613eb3565b6040518363ffffffff1660e01b8152600401612833929190615404565b602060405180830381865afa158015612850573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287491906153a2565b6128935781604051632b8b7c8960e01b815260040161153b9190615158565b61289d81836145ec565b60006128a76143b6565b600301546001600160a01b031663d0ebb0ee846128c5611ae6611c42565b6040518363ffffffff1660e01b81526004016128e2929190615404565b600060405180830381865afa1580156128ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261292791908101906155df565b509050600073__$24ed9c895b3ab1d429967676414af5d94a$__63412caf0b856040518263ffffffff1660e01b81526004016129639190615158565b600060405180830381865af4158015612980573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129a8919081019061548e565b9050600080600073__$24ed9c895b3ab1d429967676414af5d94a$__63ea66e04a308989886040518563ffffffff1660e01b81526004016129ec949392919061562d565b600060405180830381865af4158015612a09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a31919081019061566a565b925092509250841580612a4357508251155b15612c6657604051632947884560e11b815273__$24ed9c895b3ab1d429967676414af5d94a$__9063528f108a90612a7f908a90600401615158565b602060405180830381865af4158015612a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac091906153a2565b15612c0b5773__$24ed9c895b3ab1d429967676414af5d94a$__63217940a6308973__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af4158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e91906151dd565b6040518463ffffffff1660e01b8152600401612b6c93929190615543565b60006040518083038186803b158015612b8457600080fd5b505af4158015612b98573d6000803e3d6000fd5b50505050612ba46143b6565b600501546040516373eff33960e11b81526001600160a01b039091169063e7dfe67290612bd8908990600190600401615425565b600060405180830381600087803b158015612bf257600080fd5b505af1158015612c06573d6000803e3d6000fd5b505050505b82516040805187151581526020810192909252810182905286906001600160a01b038916907f55b62c33ca46df94310e16fc7e52e8ed456d93a5f21b1e7b5b4c2428905ddebc9060600160405180910390a350505050505050565b612c748787858560016145cd565b50505050505050565b6000805160206159b0833981519152612c958161426c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460089190600160401b900460ff1680612cde575080546001600160401b03808416911610155b15612cfc5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b1781556001600160a01b038516612d875760405162461bcd60e51b815260206004820152602d60248201527f58416c6c6f636174696f6e566f74696e673a20696e76616c6964206e6176696760448201526c61746f7220726567697374727960981b606482015260840161153b565b60405163ce396b1f60e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__9063ce396b1f90612dbe908890600401615158565b60006040518083038186803b158015612dd657600080fd5b505af4158015612dea573d6000803e3d6000fd5b5050604051631270590360e31b81526004810187905273__$e74cba849739aecfa9bf3b6281c0831878$__9250639382c818915060240160006040518083038186803b158015612e3957600080fd5b505af4158015612e4d573d6000803e3d6000fd5b5050825460ff60401b1916835550506040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b600073__$e74cba849739aecfa9bf3b6281c0831878$__63abc517fd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b600080516020615a10833981519152612f028161426c565b60405163358e7d9760e21b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__9063d639f65c90611070908590600401615158565b600080516020615a10833981519152612f518161426c565b604051634784a11360e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__90634784a11390611070908590600401615158565b600073__$36f22459ee3e33aa9c0be04d35fbeab80d$__63bb7de6d46040518163ffffffff1660e01b8152600401602060405180830381865af4158015610eff573d6000803e3d6000fd5b60006000805160206159f0833981519152612fed8161426c565b6000339050600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__639cbe5efd6040518163ffffffff1660e01b8152600401602060405180830381865af415801561303d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613061919061519b565b905080156130e5576130728161218f565b156130e55760405162461bcd60e51b815260206004820152603f60248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f723a20746865726560448201527f2063616e206265206f6e6c79206f6e6520726f756e64207065722074696d6500606482015260840161153b565b60008111801561316657506040516333727c4d60e01b81526004810182905273__$70f75f99fe6661499ece4b8956af59cd6c$__906333727c4d90602401602060405180830381865af4158015613140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316491906153a2565b155b156131f85773__$70f75f99fe6661499ece4b8956af59cd6c$__6309d3c59b8261318f846114a0565b60028111156131a0576131a0614e91565b6131a98561218f565b6040518463ffffffff1660e01b81526004016131c7939291906153bd565b60006040518083038186803b1580156131df57600080fd5b505af41580156131f3573d6000803e3d6000fd5b505050505b60006132026143b6565b546040805163c04cff1960e01b815290516001600160a01b039092169163c04cff19916004808201926000929091908290030181865afa15801561324a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613272919081019061548e565b9050600073__$95674d662a270791c819f82956386ae379$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af41580156132bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e391906151dd565b9050600073__$e74cba849739aecfa9bf3b6281c0831878$__6302a251a36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613330573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613354919061519b565b9050600073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__637ad59a23878585886040518563ffffffff1660e01b815260040161339594939291906156d6565b602060405180830381865af41580156133b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d6919061519b565b604051633ed9b0ff60e11b81526004810182905290915073__$36f22459ee3e33aa9c0be04d35fbeab80d$__90637db361fe9060240160006040518083038186803b15801561342457600080fd5b505af4158015613438573d6000803e3d6000fd5b505060405163059e952b60e01b81526000925073__$24ed9c895b3ab1d429967676414af5d94a$__915063059e952b90613476908790600401615117565b602060405180830381865af4158015613493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b791906151b4565b905060006134c36143b6565b600601546001600160a01b031690506000811561354c57604051630a5515e360e01b81526001600160a01b03831690630a5515e390613506908990600401615117565b602060405180830381865afa158015613523573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354791906151b4565b61354f565b60005b905060006135696001600160d01b0380841690861661572a565b9050606060006135776143b6565b600401546001600160a01b03169050801580159061359e57506000846001600160d01b0316115b1561360c57806001600160a01b0316635584c4f96040518163ffffffff1660e01b8152600401600060405180830381865afa1580156135e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613609919081019061548e565b91505b600083118061361c575060008251115b156136a257600061362b6143b6565b6005015460405163bfaabf3160e01b81526001600160a01b039091169150819063bfaabf319061366e908b9088906001600160d01b038b1690899060040161573d565b600060405180830381600087803b15801561368857600080fd5b505af115801561369c573d6000803e3d6000fd5b50505050505b50949b50505050505050505050505090565b6136c7816136c2600061466a565b61468d565b5060006136d26143b6565b600601546001600160a01b0316905060006136ec83613eb3565b90506000826001600160a01b03166318be49d986846040518363ffffffff1660e01b815260040161371e92919061550d565b602060405180830381865afa15801561373b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375f9190615526565b90506001600160a01b03811661378a5784604051630d1c9abb60e31b815260040161153b9190615158565b60006137946143b6565b600501546001600160a01b031690506137ac826146cc565b1561384857604051637b8fee0b60e11b81526001600160a01b0382169063f71fdc16906137df9088908a906004016154c2565b600060405180830381600087803b1580156137f957600080fd5b505af115801561380d573d6000803e3d6000fd5b5050505084826001600160a01b0316876001600160a01b031660008051602061597083398151915260405160405180910390a4505050505050565b604051630e53e11560e21b81526001600160a01b0385169063394f845490613876908590899060040161550d565b602060405180830381865afa158015613893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b791906153a2565b6138f2576138c485614724565b604051637b8fee0b60e11b81526001600160a01b0382169063f71fdc16906137df9088908a906004016154c2565b60006138fc6143b6565b600301546001600160a01b031663d0ebb0ee8861391887614596565b6040518363ffffffff1660e01b8152600401613935929190615404565b600060405180830381865afa158015613952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261397a91908101906155df565b50905080613a1a57604051637b8fee0b60e11b81526001600160a01b0383169063f71fdc16906139b09089908b906004016154c2565b600060405180830381600087803b1580156139ca57600080fd5b505af11580156139de573d6000803e3d6000fd5b5050505085836001600160a01b0316886001600160a01b031660008051602061597083398151915260405160405180910390a450505050505050565b613a2486886145ec565b600080866001600160a01b031663f232dd60868a6040518363ffffffff1660e01b8152600401613a5592919061550d565b600060405180830381865afa158015613a72573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613a9a9190810190615762565b915091506000876001600160a01b031663c61c06e78b896040518363ffffffff1660e01b8152600401613ace92919061550d565b602060405180830381865afa158015613aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0f919061519b565b90506000886001600160a01b031663e1f1c4a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b75919061519b565b9050600083516001600160401b03811115613b9257613b92614d35565b604051908082528060200260200182016040528015613bbb578160200160208202803683370190505b5090506000805b8551811015613c525783868281518110613bde57613bde6157bb565b602002602001015186613bf191906157d1565b613bfb91906157e8565b838281518110613c0d57613c0d6157bb565b602002602001018181525050828181518110613c2b57613c2b6157bb565b602002602001015182613c3e919061572a565b915080613c4a8161580a565b915050613bc2565b508381108015613c63575060008251115b15613c9d57613c728185615823565b82600081518110613c8557613c856157bb565b60200260200101818151613c99919061572a565b9052505b613cac8d8d8885886000614837565b6001600160a01b038816636cf88e73338f8f60006040518563ffffffff1660e01b8152600401613cdf9493929190615836565b600060405180830381600087803b158015613cf957600080fd5b505af1158015613d0d573d6000803e3d6000fd5b505050508b896001600160a01b03168e6001600160a01b03167f28e698009c3f75a566409d95005b1906bbae152060ccf899a822777dd147950c8986604051613d57929190615874565b60405180910390a450505050505050505050505050565b604051630bed730160e41b815260009073__$04e71bdb39671a9b319808db351dce05d3$__9063bed73010906118b09086908690600401615425565b600080516020615a10833981519152613dc28161426c565b604051637d4b948360e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__90637d4b948390611070908590600401615158565b6000806000613e066143b6565b600301546001600160a01b031663d0ebb0ee85613e24611ae6611c42565b6040518363ffffffff1660e01b8152600401613e41929190615404565b600060405180830381865afa158015613e5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e8691908101906155df565b9150915081613eac5783816040516344c4534960e01b815260040161153b929190615899565b5092915050565b6040516368377f6d60e11b81526004810182905260009073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063d06efeda906024016110db565b60405163d3a368bd60e01b81526004810182905260009073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063d3a368bd906024016110db565b600073__$04e71bdb39671a9b319808db351dce05d3$__63754ba25d83613f52610e6486613eb3565b6040518363ffffffff1660e01b81526004016112c1929190615425565b613f7882611192565b613f818161426c565b611249838361433e565b6000613f956143b6565b546001600160a01b031663d2570b9484613fae85613eb3565b6040518363ffffffff1660e01b8152600401613fcb929190615425565b602060405180830381865afa158015611475573d6000803e3d6000fd5b6000613ff26143b6565b600601546001600160a01b0316919050565b60008051602061599083398151915261401c8161426c565b73__$e74cba849739aecfa9bf3b6281c0831878$__630ff235a98361403f6143b6565b60010160009054906101000a90046001600160a01b03166001600160a01b0316635bec4cb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015614093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140b7919061519b565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401611070565b604051633ae4067560e21b815260009073__$95674d662a270791c819f82956386ae379$__9063eb9019d4906118b0908690869060040161550d565b600080516020615a1083398151915261413a8161426c565b60405163ce396b1f60e01b815273__$bf28f2fe6ea34a72b5bcc07a968e709e76$__9063ce396b1f90611070908590600401615158565b6000805160206159908339815191526141898161426c565b604051637afd709b60e11b81526004810183905273__$36f22459ee3e33aa9c0be04d35fbeab80d$__9063f5fae13690602401611070565b604051637c672b0560e11b81526004810182905260009073__$e7d0f1dc0c8caff7791d9dd32970050ea7$__9063f8ce560a906024016110db565b60405163fb03ec6f60e01b81526004810182905260009073__$04e71bdb39671a9b319808db351dce05d3$__9063fb03ec6f906024016110db565b60006001600160e01b03198216637965db0b60e01b1480610eae57506301ffc9a760e01b6001600160e01b0319831614610eae565b6142768133614981565b50565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b6000806142a8614279565b90506142b484846124a4565b614334576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556142ea3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610eae565b6000915050610eae565b600080614349614279565b905061435584846124a4565b15614334576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610eae565b7f1da8cbbb2b12987a437595605432a6bbe84c08e9685afaaee593f05659f50d0090565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061446157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166144556000805160206159d0833981519152546001600160a01b031690565b6001600160a01b031614155b1561447f5760405163703e46dd60e11b815260040160405180910390fd5b565b6000805160206159b083398151915261198b8161426c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156144f3575060408051601f3d908101601f191682019092526144f09181019061519b565b60015b6145125781604051634c9c8ce360e01b815260040161153b9190615158565b6000805160206159d0833981519152811461454357604051632a87526960e21b81526004810182905260240161153b565b6113c483836149ac565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461447f5760405163703e46dd60e11b815260040160405180910390fd5b600065ffffffffffff8211156145c9576040516306dfcc6560e41b8152603060048201526024810183905260440161153b565b5090565b60006145dc86610dc087613eb3565b905061109c868686868587614837565b6145f46143b6565b600501546001600160a01b031663e5ed920b8383336040516001600160e01b031960e086901b16815260048101939093526001600160a01b03918216602484015216604482015260640160006040518083038186803b15801561465657600080fd5b505afa15801561109c573d6000803e3d6000fd5b600081600281111561467e5761467e614e91565b600160ff919091161b92915050565b600080614699846114a0565b90506000836146a78361466a565b1603611499578381846040516321b2b5ab60e11b815260040161153b939291906158bd565b60006146d66143b6565b6006015460405163506b90db60e11b81526001600160a01b039091169063a0d721b690614707908590600401615158565b602060405180830381865afa1580156112de573d6000803e3d6000fd5b60405163d3a368bd60e01b81526004810182905260009073__$ee22ebed0dbdcceb519aa1d808f0526e6a$__9063d3a368bd90602401602060405180830381865af4158015614777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061479b919061519b565b90508073__$e74cba849739aecfa9bf3b6281c0831878$__63abc517fd6040518163ffffffff1660e01b8152600401602060405180830381865af41580156147e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061480b919061519b565b614815904361572a565b101561198b5760405163474a8edb60e11b81526004810183905260240161153b565b614845856136c2600061466a565b5073__$04e71bdb39671a9b319808db351dce05d3$__63cdc6ac0c868887878761486e8c613eb3565b6040518763ffffffff1660e01b815260040161488f969594939291906158df565b60006040518083038186803b1580156148a757600080fd5b505af41580156148bb573d6000803e3d6000fd5b50505050801561109c576148cd6143b6565b600501546001600160a01b0316636cf88e7333888860006040518563ffffffff1660e01b81526004016149039493929190615836565b600060405180830381600087803b15801561491d57600080fd5b505af1158015614931573d6000803e3d6000fd5b5050505084866001600160a01b03167f64dbcb1d23926d04f2fea8c7cc3f5d02846ee1e48940419cf422f69ae35813aa8686604051614971929190615874565b60405180910390a3505050505050565b61498b82826124a4565b61198b57808260405163e2517d3f60e01b815260040161153b92919061550d565b6149b582614a02565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156149fa576113c48282614a5e565b61198b614ad4565b806001600160a01b03163b600003614a2f5780604051634c9c8ce360e01b815260040161153b9190615158565b6000805160206159d083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051614a7b9190615953565b600060405180830381855af49150503d8060008114614ab6576040519150601f19603f3d011682016040523d82523d6000602084013e614abb565b606091505b5091509150614acb858383614af3565b95945050505050565b341561447f5760405163b398979f60e01b815260040160405180910390fd5b606082614b0857614b0382614b46565b611499565b8151158015614b1f57506001600160a01b0384163b155b15614b3f5783604051639996b31560e01b815260040161153b9190615158565b5080611499565b805115614b565780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215614b8157600080fd5b81356001600160e01b03198116811461149957600080fd5b65ffffffffffff8116811461427657600080fd5b600060208284031215614bbf57600080fd5b813561149981614b99565b600060208284031215614bdc57600080fd5b5035919050565b60005b83811015614bfe578181015183820152602001614be6565b50506000910152565b60008151808452614c1f816020860160208601614be3565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015614ce257888303603f19018552815180518452878101516001600160a01b0316888501528681015160c088860181905290614c9b82870182614c07565b91505060608083015186830382880152614cb58382614c07565b6080858101519089015260a094850151151594909701939093525050509386019390860190600101614c5a565b509098975050505050505050565b6001600160a01b038116811461427657600080fd5b60008060408385031215614d1857600080fd5b823591506020830135614d2a81614cf0565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715614d6d57614d6d614d35565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614d9b57614d9b614d35565b604052919050565b60006001600160401b03821115614dbc57614dbc614d35565b5060051b60200190565b600082601f830112614dd757600080fd5b81356020614dec614de783614da3565b614d73565b82815260059290921b84018101918181019086841115614e0b57600080fd5b8286015b84811015614e265780358352918301918301614e0f565b509695505050505050565b600060208284031215614e4357600080fd5b81356001600160401b03811115614e5957600080fd5b6117f584828501614dc6565b60008060408385031215614e7857600080fd5b8235614e8381614cf0565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b60038110614eb757614eb7614e91565b9052565b60208101610eae8284614ea7565b600060208284031215614edb57600080fd5b813561149981614cf0565b600081518084526020808501945080840160005b83811015614f1657815187529582019590820190600101614efa565b509495945050505050565b6020815260006114996020830184614ee6565b600080600060608486031215614f4957600080fd5b833592506020840135614f5b81614cf0565b929592945050506040919091013590565b60008060408385031215614f7f57600080fd5b50508035926020909101359150565b6020815260006114996020830184614c07565b60006001600160401b03821115614fba57614fba614d35565b50601f01601f191660200190565b60008060408385031215614fdb57600080fd5b8235614fe681614cf0565b915060208301356001600160401b0381111561500157600080fd5b8301601f8101851361501257600080fd5b8035615020614de782614fa1565b81815286602083850101111561503557600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008060006060848603121561506a57600080fd5b833592506020808501356001600160401b038082111561508957600080fd5b61509588838901614dc6565b945060408701359150808211156150ab57600080fd5b508501601f810187136150bd57600080fd5b80356150cb614de782614da3565b81815260059190911b820183019083810190898311156150ea57600080fd5b928401925b82841015615108578335825292840192908401906150ef565b80955050505050509250925092565b65ffffffffffff91909116815260200190565b6000806040838503121561513d57600080fd5b823561514881614cf0565b91506020830135614d2a81614b99565b6001600160a01b0391909116815260200190565b63ffffffff8116811461427657600080fd5b60006020828403121561519057600080fd5b81356114998161516c565b6000602082840312156151ad57600080fd5b5051919050565b6000602082840312156151c657600080fd5b81516001600160d01b038116811461149957600080fd5b6000602082840312156151ef57600080fd5b815161149981614b99565b805161520581614cf0565b919050565b600082601f83011261521b57600080fd5b8151615229614de782614fa1565b81815284602083860101111561523e57600080fd5b6117f5826020830160208701614be3565b8051801515811461520557600080fd5b6000602080838503121561527257600080fd5b82516001600160401b038082111561528957600080fd5b818501915085601f83011261529d57600080fd5b81516152ab614de782614da3565b81815260059190911b830184019084810190888311156152ca57600080fd5b8585015b83811015615395578051858111156152e557600080fd5b860160c0818c03601f190112156152fc5760008081fd5b615304614d4b565b88820151815260406153178184016151fa565b8a8301526060808401518981111561532f5760008081fd5b61533d8f8d8388010161520a565b83850152506080915081840151898111156153585760008081fd5b6153668f8d8388010161520a565b82850152505060a0808401518284015261538260c0850161524f565b90830152508452509186019186016152ce565b5098975050505050505050565b6000602082840312156153b457600080fd5b6114998261524f565b92835260ff9190911660208301521515604082015260600190565b6001600160a01b03848116825283166020820152606060408201819052600090614acb90830184614ee6565b6001600160a01b0392909216825265ffffffffffff16602082015260400190565b918252602082015260400190565b600082601f83011261544457600080fd5b81516020615454614de783614da3565b82815260059290921b8401810191818101908684111561547357600080fd5b8286015b84811015614e265780518352918301918301615477565b6000602082840312156154a057600080fd5b81516001600160401b038111156154b657600080fd5b6117f584828501615433565b9182526001600160a01b0316602082015260400190565b6000602082840312156154eb57600080fd5b81516001600160401b0381111561550157600080fd5b6117f58482850161520a565b6001600160a01b03929092168252602082015260400190565b60006020828403121561553857600080fd5b815161149981614cf0565b6001600160a01b03938416815291909216602082015265ffffffffffff909116604082015260600190565b60006060828403121561558057600080fd5b604051606081016001600160401b03811182821017156155a2576155a2614d35565b60405282516155b081614cf0565b815260208301516155c081614b99565b602082015260408301516155d38161516c565b60408201529392505050565b600080604083850312156155f257600080fd5b6155fb8361524f565b60208401519092506001600160401b0381111561561757600080fd5b6156238582860161520a565b9150509250929050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061566090830184614ee6565b9695505050505050565b60008060006060848603121561567f57600080fd5b83516001600160401b038082111561569657600080fd5b6156a287838801615433565b945060208601519150808211156156b857600080fd5b506156c586828701615433565b925050604084015190509250925092565b6001600160a01b038516815265ffffffffffff8416602082015263ffffffff8316604082015260806060820181905260009061566090830184614ee6565b634e487b7160e01b600052601160045260246000fd5b80820180821115610eae57610eae615714565b8481528360208201528260408201526080606082015260006156606080830184614ee6565b6000806040838503121561577557600080fd5b82516001600160401b038082111561578c57600080fd5b61579886838701615433565b935060208501519150808211156157ae57600080fd5b5061562385828601615433565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610eae57610eae615714565b60008261580557634e487b7160e01b600052601260045260246000fd5b500490565b60006001820161581c5761581c615714565b5060010190565b81810381811115610eae57610eae615714565b6001600160a01b0385811682528416602082015260408101839052608081016002831061586557615865614e91565b82606083015295945050505050565b6040815260006158876040830185614ee6565b8281036020840152614acb8185614ee6565b6001600160a01b03831681526040602082018190526000906117f590830184614c07565b838152606081016158d16020830185614ea7565b826040830152949350505050565b8681526000602060018060a01b0388168184015260c0604084015261590760c0840188614ee6565b838103606085015286518082528288019183019060005b8181101561593a5783518352928401929184019160010161591e565b5050608085019690965250505060a00152949350505050565b60008251615965818460208701614be3565b919091019291505056fe8e8addaac431662b768d45375ef48133b8bad0daad5ce4096fd41007e8d31a8771840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc2b53661063988f1ad36e0a49d4d9a6a3106652aaeed2be542c8691d5f5fd168b56af926aa3845d4dc63a6c773ed36f51794728c97ebcd1bf845bcecb16eeb6b7a2646970667358221220d5c7dd6d1113b2bdc8640a203047b96ae10ec6751a01dd2a2901eaef3fbd7aa264736f6c63430008140033",
  "linkReferences": {
    "contracts/x-allocation-voting-governance/libraries/AutoVotingLogic.sol": {
      "AutoVotingLogic": [
        {
          "length": 20,
          "start": 4158
        },
        {
          "length": 20,
          "start": 5327
        },
        {
          "length": 20,
          "start": 5405
        },
        {
          "length": 20,
          "start": 6143
        },
        {
          "length": 20,
          "start": 7965
        },
        {
          "length": 20,
          "start": 8298
        },
        {
          "length": 20,
          "start": 8410
        },
        {
          "length": 20,
          "start": 8811
        },
        {
          "length": 20,
          "start": 9325
        },
        {
          "length": 20,
          "start": 10242
        },
        {
          "length": 20,
          "start": 10371
        },
        {
          "length": 20,
          "start": 10802
        },
        {
          "length": 20,
          "start": 10933
        },
        {
          "length": 20,
          "start": 11099
        },
        {
          "length": 20,
          "start": 11211
        },
        {
          "length": 20,
          "start": 13649
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/ExternalContractsUtils.sol": {
      "ExternalContractsUtils": [
        {
          "length": 20,
          "start": 7608
        },
        {
          "length": 20,
          "start": 7776
        },
        {
          "length": 20,
          "start": 8694
        },
        {
          "length": 20,
          "start": 11930
        },
        {
          "length": 20,
          "start": 12309
        },
        {
          "length": 20,
          "start": 12388
        },
        {
          "length": 20,
          "start": 16085
        },
        {
          "length": 20,
          "start": 16973
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/RoundEarningsSettingsUtils.sol": {
      "RoundEarningsSettingsUtils": [
        {
          "length": 20,
          "start": 4545
        },
        {
          "length": 20,
          "start": 4665
        },
        {
          "length": 20,
          "start": 8621
        },
        {
          "length": 20,
          "start": 9428
        },
        {
          "length": 20,
          "start": 12432
        },
        {
          "length": 20,
          "start": 13555
        },
        {
          "length": 20,
          "start": 17059
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/RoundFinalizationUtils.sol": {
      "RoundFinalizationUtils": [
        {
          "length": 20,
          "start": 4972
        },
        {
          "length": 20,
          "start": 5031
        },
        {
          "length": 20,
          "start": 5128
        },
        {
          "length": 20,
          "start": 12810
        },
        {
          "length": 20,
          "start": 12913
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/RoundVotesCountingUtils.sol": {
      "RoundVotesCountingUtils": [
        {
          "length": 20,
          "start": 4724
        },
        {
          "length": 20,
          "start": 5971
        },
        {
          "length": 20,
          "start": 6299
        },
        {
          "length": 20,
          "start": 6419
        },
        {
          "length": 20,
          "start": 6486
        },
        {
          "length": 20,
          "start": 6538
        },
        {
          "length": 20,
          "start": 8070
        },
        {
          "length": 20,
          "start": 8933
        },
        {
          "length": 20,
          "start": 9978
        },
        {
          "length": 20,
          "start": 16004
        },
        {
          "length": 20,
          "start": 16433
        },
        {
          "length": 20,
          "start": 17177
        },
        {
          "length": 20,
          "start": 18764
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/RoundsStorageUtils.sol": {
      "RoundsStorageUtils": [
        {
          "length": 20,
          "start": 4815
        },
        {
          "length": 20,
          "start": 5567
        },
        {
          "length": 20,
          "start": 5829
        },
        {
          "length": 20,
          "start": 7498
        },
        {
          "length": 20,
          "start": 7652
        },
        {
          "length": 20,
          "start": 8759
        },
        {
          "length": 20,
          "start": 9546
        },
        {
          "length": 20,
          "start": 10022
        },
        {
          "length": 20,
          "start": 12538
        },
        {
          "length": 20,
          "start": 13406
        },
        {
          "length": 20,
          "start": 16336
        },
        {
          "length": 20,
          "start": 16395
        },
        {
          "length": 20,
          "start": 18497
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/VotesQuorumFractionUtils.sol": {
      "VotesQuorumFractionUtils": [
        {
          "length": 20,
          "start": 4289
        },
        {
          "length": 20,
          "start": 6807
        },
        {
          "length": 20,
          "start": 8032
        },
        {
          "length": 20,
          "start": 9889
        },
        {
          "length": 20,
          "start": 17118
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/VotesUtils.sol": {
      "VotesUtils": [
        {
          "length": 20,
          "start": 4316
        },
        {
          "length": 20,
          "start": 5708
        },
        {
          "length": 20,
          "start": 6649
        },
        {
          "length": 20,
          "start": 8438
        },
        {
          "length": 20,
          "start": 9353
        },
        {
          "length": 20,
          "start": 9698
        },
        {
          "length": 20,
          "start": 11239
        },
        {
          "length": 20,
          "start": 13180
        },
        {
          "length": 20,
          "start": 16892
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/VotingSettingsUtils.sol": {
      "VotingSettingsUtils": [
        {
          "length": 20,
          "start": 4028
        },
        {
          "length": 20,
          "start": 9851
        },
        {
          "length": 20,
          "start": 12038
        },
        {
          "length": 20,
          "start": 12199
        },
        {
          "length": 20,
          "start": 13293
        },
        {
          "length": 20,
          "start": 16674
        },
        {
          "length": 20,
          "start": 18596
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/x-allocation-voting-governance/libraries/AutoVotingLogic.sol": {
      "AutoVotingLogic": [
        {
          "length": 20,
          "start": 3898
        },
        {
          "length": 20,
          "start": 5067
        },
        {
          "length": 20,
          "start": 5145
        },
        {
          "length": 20,
          "start": 5883
        },
        {
          "length": 20,
          "start": 7705
        },
        {
          "length": 20,
          "start": 8038
        },
        {
          "length": 20,
          "start": 8150
        },
        {
          "length": 20,
          "start": 8551
        },
        {
          "length": 20,
          "start": 9065
        },
        {
          "length": 20,
          "start": 9982
        },
        {
          "length": 20,
          "start": 10111
        },
        {
          "length": 20,
          "start": 10542
        },
        {
          "length": 20,
          "start": 10673
        },
        {
          "length": 20,
          "start": 10839
        },
        {
          "length": 20,
          "start": 10951
        },
        {
          "length": 20,
          "start": 13389
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/ExternalContractsUtils.sol": {
      "ExternalContractsUtils": [
        {
          "length": 20,
          "start": 7348
        },
        {
          "length": 20,
          "start": 7516
        },
        {
          "length": 20,
          "start": 8434
        },
        {
          "length": 20,
          "start": 11670
        },
        {
          "length": 20,
          "start": 12049
        },
        {
          "length": 20,
          "start": 12128
        },
        {
          "length": 20,
          "start": 15825
        },
        {
          "length": 20,
          "start": 16713
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/RoundEarningsSettingsUtils.sol": {
      "RoundEarningsSettingsUtils": [
        {
          "length": 20,
          "start": 4285
        },
        {
          "length": 20,
          "start": 4405
        },
        {
          "length": 20,
          "start": 8361
        },
        {
          "length": 20,
          "start": 9168
        },
        {
          "length": 20,
          "start": 12172
        },
        {
          "length": 20,
          "start": 13295
        },
        {
          "length": 20,
          "start": 16799
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/RoundFinalizationUtils.sol": {
      "RoundFinalizationUtils": [
        {
          "length": 20,
          "start": 4712
        },
        {
          "length": 20,
          "start": 4771
        },
        {
          "length": 20,
          "start": 4868
        },
        {
          "length": 20,
          "start": 12550
        },
        {
          "length": 20,
          "start": 12653
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/RoundVotesCountingUtils.sol": {
      "RoundVotesCountingUtils": [
        {
          "length": 20,
          "start": 4464
        },
        {
          "length": 20,
          "start": 5711
        },
        {
          "length": 20,
          "start": 6039
        },
        {
          "length": 20,
          "start": 6159
        },
        {
          "length": 20,
          "start": 6226
        },
        {
          "length": 20,
          "start": 6278
        },
        {
          "length": 20,
          "start": 7810
        },
        {
          "length": 20,
          "start": 8673
        },
        {
          "length": 20,
          "start": 9718
        },
        {
          "length": 20,
          "start": 15744
        },
        {
          "length": 20,
          "start": 16173
        },
        {
          "length": 20,
          "start": 16917
        },
        {
          "length": 20,
          "start": 18504
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/RoundsStorageUtils.sol": {
      "RoundsStorageUtils": [
        {
          "length": 20,
          "start": 4555
        },
        {
          "length": 20,
          "start": 5307
        },
        {
          "length": 20,
          "start": 5569
        },
        {
          "length": 20,
          "start": 7238
        },
        {
          "length": 20,
          "start": 7392
        },
        {
          "length": 20,
          "start": 8499
        },
        {
          "length": 20,
          "start": 9286
        },
        {
          "length": 20,
          "start": 9762
        },
        {
          "length": 20,
          "start": 12278
        },
        {
          "length": 20,
          "start": 13146
        },
        {
          "length": 20,
          "start": 16076
        },
        {
          "length": 20,
          "start": 16135
        },
        {
          "length": 20,
          "start": 18237
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/VotesQuorumFractionUtils.sol": {
      "VotesQuorumFractionUtils": [
        {
          "length": 20,
          "start": 4029
        },
        {
          "length": 20,
          "start": 6547
        },
        {
          "length": 20,
          "start": 7772
        },
        {
          "length": 20,
          "start": 9629
        },
        {
          "length": 20,
          "start": 16858
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/VotesUtils.sol": {
      "VotesUtils": [
        {
          "length": 20,
          "start": 4056
        },
        {
          "length": 20,
          "start": 5448
        },
        {
          "length": 20,
          "start": 6389
        },
        {
          "length": 20,
          "start": 8178
        },
        {
          "length": 20,
          "start": 9093
        },
        {
          "length": 20,
          "start": 9438
        },
        {
          "length": 20,
          "start": 10979
        },
        {
          "length": 20,
          "start": 12920
        },
        {
          "length": 20,
          "start": 16632
        }
      ]
    },
    "contracts/x-allocation-voting-governance/libraries/VotingSettingsUtils.sol": {
      "VotingSettingsUtils": [
        {
          "length": 20,
          "start": 3768
        },
        {
          "length": 20,
          "start": 9591
        },
        {
          "length": 20,
          "start": 11778
        },
        {
          "length": 20,
          "start": 11939
        },
        {
          "length": 20,
          "start": 13033
        },
        {
          "length": 20,
          "start": 16414
        },
        {
          "length": 20,
          "start": 18336
        }
      ]
    }
  }
}
