{
  "_format": "hh-sol-artifact-1",
  "contractName": "FtsoRewardManager",
  "sourceName": "contracts/tokenPools/implementation/FtsoRewardManager.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_addressUpdater",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_oldFtsoRewardManager",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_feePercentageUpdateOffset",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_defaultFeePercentage",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "rewardOwner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        }
      ],
      "name": "AllowedClaimRecipientsChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "rewardOwner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "executors",
          "type": "address[]"
        }
      ],
      "name": "ClaimExecutorsChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "authorizedAmountWei",
          "type": "uint256"
        }
      ],
      "name": "DailyAuthorizedInflationSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "dataProvider",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "validFromEpoch",
          "type": "uint256"
        }
      ],
      "name": "FeePercentageChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "selector",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "allowedAfterTimestamp",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "encodedCall",
          "type": "bytes"
        }
      ],
      "name": "GovernanceCallTimelocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "initialGovernance",
          "type": "address"
        }
      ],
      "name": "GovernanceInitialised",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "governanceSettings",
          "type": "address"
        }
      ],
      "name": "GovernedProductionModeEntered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amountReceivedWei",
          "type": "uint256"
        }
      ],
      "name": "InflationReceived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "dataProvider",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "whoClaimed",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sentTo",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "rewardEpoch",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RewardClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "rewardEpochId",
          "type": "uint256"
        }
      ],
      "name": "RewardClaimsEnabled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "rewardEpochId",
          "type": "uint256"
        }
      ],
      "name": "RewardClaimsExpired",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amountBurnedWei",
          "type": "uint256"
        }
      ],
      "name": "RewardsBurned",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "ftso",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "epochId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "addresses",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "rewards",
          "type": "uint256[]"
        }
      ],
      "name": "RewardsDistributed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "selector",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "TimelockedGovernanceCallCanceled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "selector",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "TimelockedGovernanceCallExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "epochId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "reward",
          "type": "uint256"
        }
      ],
      "name": "UnearnedRewardsAccrued",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_epochId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_priceEpochDurationSeconds",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_priceEpochEndTime",
          "type": "uint256"
        }
      ],
      "name": "accrueUnearnedRewards",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "activate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "active",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_rewardOwner",
          "type": "address"
        }
      ],
      "name": "allowedClaimRecipients",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "_selector",
          "type": "bytes4"
        }
      ],
      "name": "cancelGovernanceCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_rewardOwner",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_recipient",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_rewardEpochs",
          "type": "uint256[]"
        },
        {
          "internalType": "bool",
          "name": "_wrap",
          "type": "bool"
        }
      ],
      "name": "claim",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_rewardAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_rewardOwner",
          "type": "address"
        }
      ],
      "name": "claimExecutors",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_rewardOwner",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_recipient",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_rewardEpochs",
          "type": "uint256[]"
        },
        {
          "internalType": "address[]",
          "name": "_dataProviders",
          "type": "address[]"
        },
        {
          "internalType": "bool",
          "name": "_wrap",
          "type": "bool"
        }
      ],
      "name": "claimFromDataProviders",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_rewardAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_recipient",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_rewardEpochs",
          "type": "uint256[]"
        }
      ],
      "name": "claimReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_rewardAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_recipient",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_rewardEpochs",
          "type": "uint256[]"
        },
        {
          "internalType": "address[]",
          "name": "_dataProviders",
          "type": "address[]"
        }
      ],
      "name": "claimRewardFromDataProviders",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_rewardAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        }
      ],
      "name": "closeExpiredRewardEpoch",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deactivate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "defaultFeePercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "delegationAccountManager",
      "outputs": [
        {
          "internalType": "contract IDelegationAccountManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_addresses",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_weights",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "_totalWeight",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_epochId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_ftso",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_priceEpochDurationSeconds",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_currentRewardEpoch",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_priceEpochEndTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_votePowerBlock",
          "type": "uint256"
        }
      ],
      "name": "distributeRewards",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "enableClaims",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "_selector",
          "type": "bytes4"
        }
      ],
      "name": "executeGovernanceCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "feePercentageUpdateOffset",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "firstClaimableRewardEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ftsoManager",
      "outputs": [
        {
          "internalType": "contract IIFtsoManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAddressUpdater",
      "outputs": [
        {
          "internalType": "address",
          "name": "_addressUpdater",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_dataProvider",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_claimer",
          "type": "address"
        }
      ],
      "name": "getClaimedReward",
      "outputs": [
        {
          "internalType": "bool",
          "name": "_claimed",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getContractName",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentRewardEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_dataProvider",
          "type": "address"
        }
      ],
      "name": "getDataProviderCurrentFeePercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_dataProvider",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        }
      ],
      "name": "getDataProviderFeePercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_feePercentageBIPS",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_dataProvider",
          "type": "address"
        }
      ],
      "name": "getDataProviderPerformanceInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_rewardAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_votePowerIgnoringRevocation",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_dataProvider",
          "type": "address"
        }
      ],
      "name": "getDataProviderScheduledFeePercentageChanges",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "_feePercentageBIPS",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_validFromEpoch",
          "type": "uint256[]"
        },
        {
          "internalType": "bool[]",
          "name": "_fixed",
          "type": "bool[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        }
      ],
      "name": "getEpochReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_totalReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_claimedReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getEpochsWithClaimableRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_startEpochId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_endEpochId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "getEpochsWithUnclaimedRewards",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "_epochIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInflationAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInitialRewardEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_initialRewardEpoch",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRewardEpochToExpireNext",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        }
      ],
      "name": "getRewardEpochVotePowerBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        }
      ],
      "name": "getStateOfRewards",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "_dataProviders",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_rewardAmounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bool[]",
          "name": "_claimed",
          "type": "bool[]"
        },
        {
          "internalType": "bool",
          "name": "_claimable",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "_dataProviders",
          "type": "address[]"
        }
      ],
      "name": "getStateOfRewardsFromDataProviders",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "_rewardAmounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bool[]",
          "name": "_claimed",
          "type": "bool[]"
        },
        {
          "internalType": "bool",
          "name": "_claimable",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTokenPoolSupplyData",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_lockedFundsWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalInflationAuthorizedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalClaimedWei",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_totalAwardedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalClaimedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalExpiredWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalUnearnedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalBurnedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalInflationAuthorizedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalInflationReceivedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalSelfDestructReceivedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_lastInflationAuthorizationReceivedTs",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_dailyAuthorizedInflation",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_rewardEpoch",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_dataProvider",
          "type": "address"
        }
      ],
      "name": "getUnclaimedReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_weight",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governance",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governanceSettings",
      "outputs": [
        {
          "internalType": "contract IGovernanceSettings",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_initialGovernance",
          "type": "address"
        }
      ],
      "name": "initialise",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "newFtsoRewardManager",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oldFtsoRewardManager",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "productionMode",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "receiveInflation",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_recipients",
          "type": "address[]"
        }
      ],
      "name": "setAllowedClaimRecipients",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_executors",
          "type": "address[]"
        }
      ],
      "name": "setClaimExecutors",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_toAuthorizeWei",
          "type": "uint256"
        }
      ],
      "name": "setDailyAuthorizedInflation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_feePercentageBIPS",
          "type": "uint256"
        }
      ],
      "name": "setDataProviderFeePercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "setInitialRewardData",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newFtsoRewardManager",
          "type": "address"
        }
      ],
      "name": "setNewFtsoRewardManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "switchToProductionMode",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "name": "timelockedCalls",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "allowedAfterTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "encodedCall",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_contractNameHashes",
          "type": "bytes32[]"
        },
        {
          "internalType": "address[]",
          "name": "_contractAddresses",
          "type": "address[]"
        }
      ],
      "name": "updateContractAddresses",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "wNat",
      "outputs": [
        {
          "internalType": "contract WNat",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040523480156200001157600080fd5b5060405162005c3038038062005c30833981810160405260a08110156200003757600080fd5b508051602082015160408301516060840151608090940151929391929091908385806001600160a01b0381161562000074576200007481620000fd565b506001600160a01b038116620000c4576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506001600255620000d581620001c0565b5060609290921b6001600160601b031916608052600e55600f555050600019600455620001e4565b600054600160a01b900460ff16156200015d576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b60805160601c615a1a62000216600039806117c152806119b85280611ae452806133f752806134355250615a1a6000f3fe6080604052600436106103765760003560e01c806384e10a90116101d1578063d20bb54211610102578063e416b7e1116100a0578063ed39d3f81161006f578063ed39d3f814611644578063f2edab5a14611659578063f5a9838314611683578063f5f5ba721461169857610376565b8063e416b7e11461147c578063e7c830d4146115e1578063ea28edad146115f6578063eb82dd7f1461160b57610376565b8063d6c1dbee116100dc578063d6c1dbee146113e0578063dfd14c341461140a578063e17f212e1461143d578063e27395631461145257610376565b8063d20bb542146111c8578063d2a4ac6114611308578063d418634a146113b657610376565b8063a9b79e171161016f578063b482403411610149578063b482403414611084578063b4a2043d14611099578063cb010c48146110cc578063cfbcd25f1461119557610376565b8063a9b79e1714610d39578063b00c0b7614610e96578063b2af870a14610fc657610376565b8063961c00ed116101ab578063961c00ed14610b985780639d6a890f14610bd15780639edbf00714610c04578063a4472c1014610c1957610376565b806384e10a9014610a2957806385b4c53814610a8e5780639119c49414610aea57610376565b806333b7971e116102ab57806362354e031161024957806367fc40291161022357806367fc4029146108fa57806374e6310e1461092e5780637b6b2c0a146109e157806382a2b905146109f657610376565b806362354e0314610876578063657d96951461088b57806367dcac53146108c457610376565b806351b42b001161028557806351b42b00146108035780635267a15d146108185780635aa6e6751461082d5780635ff270791461084257610376565b806333b7971e1461065a5780633e7ff8571461076b5780633f317fe11461078057610376565b806312f97ac0116103185780631de56098116102f25780631de56098146104b257806321bb25af146104c75780632dafdbbf146106125780633123b7d81461064557610376565b806312f97ac01461044c57806316e693281461046157806316fe49c71461049d57610376565b806307e41fe81161035457806307e41fe8146103dc5780630cb723441461040d5780630f15f4c01461042257806311a7aaaa1461043757610376565b806302fb0c5e1461037b5780630441218e146103a457806306201f1d146103d2575b600080fd5b34801561038757600080fd5b50610390611722565b604080519115158252519081900360200190f35b3480156103b057600080fd5b506103b961172b565b6040805192835260208301919091528051918290030190f35b6103da61173f565b005b3480156103e857600080fd5b506103f16117b0565b604080516001600160a01b039092168252519081900360200190f35b34801561041957600080fd5b506103f16117bf565b34801561042e57600080fd5b506103da6117e3565b34801561044357600080fd5b506103f1611879565b34801561045857600080fd5b506103f1611888565b34801561046d57600080fd5b5061048b6004803603602081101561048457600080fd5b5035611897565b60408051918252519081900360200190f35b3480156104a957600080fd5b5061048b611973565b3480156104be57600080fd5b506103da611979565b3480156104d357600080fd5b5061048b600480360360a08110156104ea57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561051d57600080fd5b82018360208201111561052f57600080fd5b803590602001918460208302840111600160201b8311171561055057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561059f57600080fd5b8201836020820111156105b157600080fd5b803590602001918460208302840111600160201b831117156105d257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050611b69565b34801561061e57600080fd5b50610627611bfc565b60408051938452602084019290925282820152519081900360600190f35b34801561065157600080fd5b5061048b611c27565b34801561066657600080fd5b5061068d6004803603602081101561067d57600080fd5b50356001600160a01b0316611c3e565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156106d55781810151838201526020016106bd565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156107145781810151838201526020016106fc565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561075357818101518382015260200161073b565b50505050905001965050505050505060405180910390f35b34801561077757600080fd5b5061048b611e92565b34801561078c57600080fd5b506107b3600480360360208110156107a357600080fd5b50356001600160a01b0316611e98565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107ef5781810151838201526020016107d7565b505050509050019250505060405180910390f35b34801561080f57600080fd5b506103da611f0e565b34801561082457600080fd5b506103f1611f22565b34801561083957600080fd5b506103f1611f47565b34801561084e57600080fd5b506103da6004803603602081101561086557600080fd5b50356001600160e01b031916611fdc565b34801561088257600080fd5b506103f1612331565b34801561089757600080fd5b506103b9600480360360408110156108ae57600080fd5b50803590602001356001600160a01b031661233c565b3480156108d057600080fd5b506103da600480360360608110156108e757600080fd5b5080359060208101359060400135612378565b34801561090657600080fd5b506103da6004803603602081101561091d57600080fd5b50356001600160e01b0319166123e0565b34801561093a57600080fd5b506109626004803603602081101561095157600080fd5b50356001600160e01b0319166124c8565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156109a557818101518382015260200161098d565b50505050905090810190601f1680156109d25780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156109ed57600080fd5b5061048b61256e565b348015610a0257600080fd5b506103da60048036036020811015610a1957600080fd5b50356001600160a01b0316612574565b348015610a3557600080fd5b50610a3e612667565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015261012083015251908190036101400190f35b348015610a9a57600080fd5b50610acf60048036036060811015610ab157600080fd5b508035906001600160a01b0360208201358116916040013516612691565b60408051921515835260208301919091528051918290030190f35b348015610af657600080fd5b506103da60048036036020811015610b0d57600080fd5b810190602081018135600160201b811115610b2757600080fd5b820183602082011115610b3957600080fd5b803590602001918460208302840111600160201b83111715610b5a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506126cd945050505050565b348015610ba457600080fd5b5061048b60048036036040811015610bbb57600080fd5b506001600160a01b03813516906020013561276f565b348015610bdd57600080fd5b506103da60048036036020811015610bf457600080fd5b50356001600160a01b03166127f1565b348015610c1057600080fd5b506103f16128aa565b348015610c2557600080fd5b50610c5260048036036040811015610c3c57600080fd5b506001600160a01b0381351690602001356128b9565b604051808060200180602001806020018515158152602001848103845288818151815260200191508051906020019060200280838360005b83811015610ca2578181015183820152602001610c8a565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015610ce1578181015183820152602001610cc9565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015610d20578181015183820152602001610d08565b5050505090500197505050505050505060405180910390f35b348015610d4557600080fd5b506103da6004803603610120811015610d5d57600080fd5b810190602081018135600160201b811115610d7757600080fd5b820183602082011115610d8957600080fd5b803590602001918460208302840111600160201b83111715610daa57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610df957600080fd5b820183602082011115610e0b57600080fd5b803590602001918460208302840111600160201b83111715610e2c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550508235935050506020810135906001600160a01b036040820135169060608101359060808101359060a08101359060c00135612923565b348015610ea257600080fd5b506103da60048036036040811015610eb957600080fd5b810190602081018135600160201b811115610ed357600080fd5b820183602082011115610ee557600080fd5b803590602001918460208302840111600160201b83111715610f0657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460208302840111600160201b83111715610f8857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612ec2945050505050565b348015610fd257600080fd5b5061048b60048036036040811015610fe957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561101357600080fd5b82018360208201111561102557600080fd5b803590602001918460208302840111600160201b8311171561104657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612f6d945050505050565b34801561109057600080fd5b5061048b612fdc565b3480156110a557600080fd5b506107b3600480360360208110156110bc57600080fd5b50356001600160a01b0316612fe2565b3480156110d857600080fd5b5061048b600480360360808110156110ef57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561112257600080fd5b82018360208201111561113457600080fd5b803590602001918460208302840111600160201b8311171561115557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050613189565b3480156111a157600080fd5b5061048b600480360360208110156111b857600080fd5b50356001600160a01b031661321a565b3480156111d457600080fd5b5061048b600480360360608110156111eb57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561121557600080fd5b82018360208201111561122757600080fd5b803590602001918460208302840111600160201b8311171561124857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561129757600080fd5b8201836020820111156112a957600080fd5b803590602001918460208302840111600160201b831117156112ca57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613231945050505050565b34801561131457600080fd5b506103da6004803603602081101561132b57600080fd5b810190602081018135600160201b81111561134557600080fd5b82018360208201111561135757600080fd5b803590602001918460208302840111600160201b8311171561137857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506132a1945050505050565b3480156113c257600080fd5b506103b9600480360360208110156113d957600080fd5b503561332b565b3480156113ec57600080fd5b506103da6004803603602081101561140357600080fd5b503561334a565b34801561141657600080fd5b506107b36004803603602081101561142d57600080fd5b50356001600160a01b031661351d565b34801561144957600080fd5b50610390613591565b34801561145e57600080fd5b506103da6004803603602081101561147557600080fd5b50356135a1565b34801561148857600080fd5b5061153f6004803603606081101561149f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156114ce57600080fd5b8201836020820111156114e057600080fd5b803590602001918460208302840111600160201b8311171561150157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506135f8945050505050565b6040518080602001806020018415158152602001838103835286818151815260200191508051906020019060200280838360005b8381101561158b578181015183820152602001611573565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156115ca5781810151838201526020016115b2565b505050509050019550505050505060405180910390f35b3480156115ed57600080fd5b5061048b61365c565b34801561160257600080fd5b506103da6136a1565b34801561161757600080fd5b506103b96004803603604081101561162e57600080fd5b50803590602001356001600160a01b0316613734565b34801561165057600080fd5b506103f1613770565b34801561166557600080fd5b5061048b6004803603602081101561167c57600080fd5b503561377f565b34801561168f57600080fd5b506103da6137fd565b3480156116a457600080fd5b506116ad6138b7565b6040805160208082528351818301528351919283929083019185019080838360005b838110156116e75781810151838201526020016116cf565b50505050905090810190601f1680156117145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60035460ff1681565b6000806117366138e2565b90939092509050565b611747613952565b60006117516139a2565b5060195490915061176290346139fc565b601955601d819055611772613a56565b6040805134815290517f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379181900360200190a1506117ae613b30565b565b601f546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6117eb613b7c565b6020546001600160a01b03161580159061180f5750601e546001600160a01b031615155b801561182557506021546001600160a01b031615155b61186a576040805162461bcd60e51b81526020600482015260116024820152701859191c995cdcd95cc81b9bdd081cd95d607a1b604482015290519081900360640190fd5b6003805460ff19166001179055565b601e546001600160a01b031681565b6022546001600160a01b031681565b60008073__$b9040dea2fd9c47e6b7e0e916053de4d6b$__63e937a562600e856118bf61365c565b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561190157600080fd5b505af4158015611915573d6000803e3d6000fd5b505050506040513d602081101561192b57600080fd5b50516040805185815260208101839052815192935033927fd89f05622c2dcb0b4fcaa19e62fc2a2b0923955685fb7b0c641467f764244abc929181900390910190a292915050565b600e5490565b600054600160b01b900460ff168061199b5750600054600160a81b900460ff16155b15611b5e576119a8613bdb565b60035460ff161580156119e357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b80156119ef5750600654155b80156119fb5750600554155b611a40576040805162461bcd60e51b81526020600482015260116024820152706e6f7420696e697469616c20737461746560781b604482015290519081900360640190fd5b611a536001611a4d61365c565b906139fc565b600655601e5460408051633e7ff85760e01b815290516001600160a01b0390921691633e7ff85791600480820192602092909190829003018186803b158015611a9b57600080fd5b505afa158015611aaf573d6000803e3d6000fd5b505050506040513d6020811015611ac557600080fd5b505160055560408051633db5960560e11b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691637b6b2c0a916004808301926020929190829003018186803b158015611b2a57600080fd5b505afa158015611b3e573d6000803e3d6000fd5b505050506040513d6020811015611b5457600080fd5b50516004556117ae565b6117ae600036613c10565b6000611b73613d93565b600280541415611bb8576040805162461bcd60e51b815260206004820152601f60248201526000805160206159a4833981519152604482015290519081900360640190fd5b6002805585611bc681613dea565b8686611bd28282613e70565b611bdf8989898989613fa2565b60016002559350611bf39250613b30915050565b95945050505050565b600080600080601854611c1c6017546014546139fc90919063ffffffff16565b925092509250909192565b600654600090611c3890600161405c565b92915050565b6060808073__$b9040dea2fd9c47e6b7e0e916053de4d6b$__6325459925600e86611c6761365c565b6040518463ffffffff1660e01b815260040180848152602001836001600160a01b03168152602001828152602001935050505060006040518083038186803b158015611cb257600080fd5b505af4158015611cc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526060811015611cef57600080fd5b8101908080516040519392919084600160201b821115611d0e57600080fd5b908301906020820185811115611d2357600080fd5b82518660208202830111600160201b82111715611d3f57600080fd5b82525081516020918201928201910280838360005b83811015611d6c578181015183820152602001611d54565b5050505090500160405260200180516040519392919084600160201b821115611d9457600080fd5b908301906020820185811115611da957600080fd5b82518660208202830111600160201b82111715611dc557600080fd5b82525081516020918201928201910280838360005b83811015611df2578181015183820152602001611dda565b5050505090500160405260200180516040519392919084600160201b821115611e1a57600080fd5b908301906020820185811115611e2f57600080fd5b82518660208202830111600160201b82111715611e4b57600080fd5b82525081516020918201928201910280838360005b83811015611e78578181015183820152602001611e60565b505050509050016040525050509250925092509193909250565b60055490565b6001600160a01b038116600090815260116020908152604091829020805483518184028101840190945280845260609392830182828015611f0257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ee4575b50505050509050919050565b611f16613b7c565b6003805460ff19169055565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611f6a576000546001600160a01b0316611fd7565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015611faa57600080fd5b505afa158015611fbe573d6000803e3d6000fd5b505050506040513d6020811015611fd457600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561202057600080fd5b505afa158015612034573d6000803e3d6000fd5b505050506040513d602081101561204a57600080fd5b505161208d576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b03198116600090815260016020526040902080546120f9576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b805442101561214f576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121e95780601f106121be576101008083540402835291602001916121e9565b820191906000526020600020905b8154815290600101906020018083116121cc57829003601f168201915b5050506001600160e01b031986166000908152600160208190526040822082815594955090925061221d915083018261587f565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b602083106122655780518252601f199092019160209182019101612246565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146122c7576040519150601f19603f3d011682016040523d82523d6000602084013e6122cc565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a161232b81614082565b50505050565b60076001609c1b0181565b60008281526008602090815260408083206001600160a01b03909416808452938252808320549483526007825280832093835292905220549091565b61238061409f565b600061238c83836140f2565b60165490915061239c90826139fc565b601655604080518581526020810183905281517f754fa5a3ace0438b80ec651f7d61e44f761a808ebd17d7ce70da619399611a08929181900390910190a150505050565b6123e8613b7c565b6001600160e01b03198116600090815260016020526040902054612453576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906124c39083018261587f565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156125645780601f1061253957610100808354040283529160200191612564565b820191906000526020600020905b81548152906001019060200180831161254757829003601f168201915b5050505050905082565b60045481565b600054600160b01b900460ff16806125965750600054600160a81b900460ff16155b15612659576125a3613bdb565b6022546001600160a01b0316156125ef576040805162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b604482015290519081900360640190fd5b6001600160a01b038116612639576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b602280546001600160a01b0319166001600160a01b038316179055612664565b612664600036613c10565b50565b601354601454601554601654601754601854601954601a54601b54601c5490919293949596979899565b6000928352600b602090815260408085206001600160a01b0394851686528252808520929093168452529020805460019091015460ff90911691565b3360009081526011602052604090206126e6908261410f565b7fa802dcd9d0db82c5fc0b043e16d9ab77391cff1b84415bce9e95c4a8d6fe7146338260405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015612758578181015183820152602001612740565b50505050905001935050505060405180910390a150565b60008161277a611c27565b111580156127965750600e5461279290611a4d61365c565b8211155b6127de576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840e4caeec2e4c840cae0dec6d60631b604482015290519081900360640190fd5b6127ea600e8484614122565b9392505050565b600054600160a01b900460ff1615612847576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6021546001600160a01b031681565b60608060606000806128c961365c565b90506128d586826141b5565b915081806128ef575080861480156128ef57506004548610155b15612919576000612902888860006141e9565b805160408201516060909201519097509095509350505b5092959194509250565b61292b61409f565b861580159061293a5750885115155b61294057fe5b600061294c85846140f2565b905060008a5167ffffffffffffffff8111801561296857600080fd5b50604051908082528060200260200182016040528015612992578160200160208202803683370190505b50905081816000815181106129a357fe5b602002602001018181525050888a6000815181106129bd57fe5b60209081029190910101528a51600019015b612a1f8b82815181106129de57fe5b60200260200101518c6000815181106129f357fe5b602002602001015184600081518110612a0857fe5b60200260200101516148539092919063ffffffff16565b828281518110612a2b57fe5b602002602001018181525050818181518110612a4357fe5b60200260200101516008600088815260200190815260200160002060008e8481518110612a6c57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282540192505081905550612b56612710602160009054906101000a90046001600160a01b03166001600160a01b03166392bfe6d88f8581518110612ad757fe5b6020026020010151886040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015612b2457600080fd5b505afa158015612b38573d6000803e3d6000fd5b505050506040513d6020811015612b4e57600080fd5b505190614953565b6007600088815260200190815260200160002060008e8481518110612b7757fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550818181518110612baf57fe5b6020026020010151600a600088815260200190815260200160002060008e8481518110612bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082825401925050819055506009600087815260200190815260200160002060008d8381518110612c2e57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460001415612d47576021548c516001600160a01b03909116906304bb4e43908e9084908110612c8257fe5b6020026020010151866040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015612ccf57600080fd5b505afa158015612ce3573d6000803e3d6000fd5b505050506040513d6020811015612cf957600080fd5b505160008781526009602052604081208e519091908f9085908110612d1a57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055505b80612d5157612dc0565b818181518110612d5d57fe5b602002602001015182600081518110612d7257fe5b6020026020010181815103915081815250508a8181518110612d9057fe5b60200260200101518b600081518110612da557fe5b602090810291909101018051919091039052600019016129cf565b6000868152600c60205260409020805484019055601354612de190846139fc565b601381905550876001600160a01b03167f8b2bc56c62594afde5b520e83e1ca19ebd071798db21382e328014f47b31ce578a8e85604051808481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612e5f578181015183820152602001612e47565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612e9e578181015183820152602001612e86565b505050509050019550505050505060405180910390a2505050505050505050505050565b612eca611f22565b6001600160a01b0316336001600160a01b031614612f26576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b612f5f612f5a83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506149ac565b614ad0565b612f698282614af4565b5050565b6000612f77613d93565b600280541415612fbc576040805162461bcd60e51b815260206004820152601f60248201526000805160206159a4833981519152604482015290519081900360640190fd5b60028055612fcd3384846000614c4b565b60016002559050611c38613b30565b600f5490565b6060600080612fef6138e2565b909250905060018282030160008167ffffffffffffffff8111801561301357600080fd5b5060405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090506000805b838110156130ea57600061305c8983890160016141e9565b905060005b8160600151518110156130e0578160600151818151811061307e57fe5b60200260200101511580156130aa57506000826040015182815181106130a057fe5b6020026020010151115b156130d85760018584815181106130bd57fe5b911515602092830291909101909101526001909301926130e0565b600101613061565b5050600101613044565b508067ffffffffffffffff8111801561310257600080fd5b5060405190808252806020026020018201604052801561312c578160200160208202803683370190505b5095506000805b8481101561317d5783818151811061314757fe5b6020026020010151156131755780870188838151811061316357fe5b60209081029190910101526001909101905b600101613133565b50505050505050919050565b6000613193613d93565b6002805414156131d8576040805162461bcd60e51b815260206004820152601f60248201526000805160206159a4833981519152604482015290519081900360640190fd5b60028055846131e681613dea565b85856131f28282613e70565b6131fe88888888614c4b565b600160025593506132129250613b30915050565b949350505050565b6000611c388261322861365c565b600e9190614122565b600061323b613d93565b600280541415613280576040805162461bcd60e51b815260206004820152601f60248201526000805160206159a4833981519152604482015290519081900360640190fd5b60028055613292338585856000613fa2565b600160025590506127ea613b30565b3360009081526012602052604090206132ba908261410f565b7ff650948f1320658fded6be6217b1fe9963894116bc6b3dbc9b1c2cc8cf2cb11f338260405180836001600160a01b03168152602001806020018281038252838181518152602001915080519060200190602002808383600083811015612758578181015183820152602001612740565b6000908152600c6020908152604080832054600d909252909120549091565b601e546001600160a01b031633148061336d57506022546001600160a01b031633145b6133ae576040805162461bcd60e51b815260206004820152600d60248201526c6f6e6c79206d616e616765727360981b604482015290519081900360640190fd5b80600554146133f5576040805162461bcd60e51b815260206004820152600e60248201526d1ddc9bdb99c8195c1bd8da081a5960921b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061342e575060065481105b156134b2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6c1dbee826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561349957600080fd5b505af11580156134ad573d6000803e3d6000fd5b505050505b6000818152600d6020908152604080832054600c90925290912054601554919003906134de90826139fc565b6015556040805183815290517f5d05c64f281304391697cf987812e1a736413a062a9bdf39af4102209eb6fa589181900360200190a150600101600555565b6001600160a01b038116600090815260126020908152604091829020805483518184028101840190945280845260609392830182828015611f02576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611ee45750505050509050919050565b600054600160a81b900460ff1681565b6135a9613952565b601c8190556018546135bb90826139fc565b60185542601b556040805182815290517f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959181900360200190a150565b60608060008061360661365c565b905061361286826141b5565b9150818061362c5750808614801561362c57506004548610155b156136525760006136408888886000614ce7565b90508060400151945080606001519350505b5093509350939050565b601e54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015611faa57600080fd5b6136a9613b7c565b600019600454146136f3576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b604482015290519081900360640190fd5b6136fb61365c565b600481905560408051918252517f1cfb844c44f9325fc9ad6cc6191a4a24b0415137fe300b6c9071523a253f7a089181900360200190a1565b6000828152600a602090815260408083206001600160a01b03909416808452938252808320549483526009825280832093835292905220549091565b6020546001600160a01b031690565b601e5460408051637976d5ad60e11b81526004810184905290516000926001600160a01b03169163f2edab5a916024808301926020929190829003018186803b1580156137cb57600080fd5b505afa1580156137df573d6000803e3d6000fd5b505050506040513d60208110156137f557600080fd5b505192915050565b613805613b7c565b600054600160a81b900460ff1615613864576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b604080518082019091526011815270233a39b7a932bbb0b93226b0b730b3b2b960791b602082015290565b6005546000806138f061365c565b905060008111613947576040805162461bcd60e51b815260206004820152601f60248201527f6e6f2065706f6368207769746820636c61696d61626c65207265776172647300604482015290519081900360640190fd5b600181039150509091565b6020546001600160a01b031633146117ae576040805162461bcd60e51b815260206004820152600e60248201526d696e666c6174696f6e206f6e6c7960901b604482015290519081900360640190fd5b6000806139ba34601d546139fc90919063ffffffff16565b9050479150808211156139ee576139e6816139e084601a546139fc90919063ffffffff16565b90615026565b601a556139f8565b808210156139f857fe5b9091565b6000828201838110156127ea576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000613a756017546139e06015546016546139fc90919063ffffffff16565b90508015612664576000613a8c4760146064614853565b9050600081831115613a9f575080613aa2565b50815b80156124c357601754613ab590826139fc565b601755601d54613ac59082615026565b601d5560405161dead9082156108fc029083906000818181858888f19350505050158015613af7573d6000803e3d6000fd5b506040805182815290517f44d5cd18c37b86a3423952287006d9550ab3cff404d6e899d5499d9ef87100b59181900360200190a1505050565b613b38615083565b47146117ae576040805162461bcd60e51b815260206004820152600e60248201526d6f7574206f662062616c616e636560901b604482015290519081900360640190fd5b613b84611f47565b6001600160a01b0316336001600160a01b0316146117ae576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054600160b01b900460ff1615613c0857333014613bf657fe5b6000805460ff60b01b191690556117ae565b6117ae613b7c565b613c18613b7c565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613c6057600080fd5b505afa158015613c74573d6000803e3d6000fd5b505050506040513d6020811015613c8a57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450613d0e939285019201906158c3565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60035460ff166117ae576040805162461bcd60e51b815260206004820152601a60248201527f726577617264206d616e61676572206465616374697661746564000000000000604482015290519081900360640190fd5b6001600160a01b038116331480613e2657506001600160a01b038116600090815260116020908152604080832033845260010190915290205415155b612664576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b91037b91032bc32b1baba37b960511b604482015290519081900360640190fd5b336001600160a01b0383161480613e985750816001600160a01b0316816001600160a01b0316145b80613ecb57506001600160a01b038083166000908152601260209081526040808320938516835260019093019052205415155b80613f595750601f54604080516369ea238760e01b81526001600160a01b038581166004830152915191909216916369ea2387916024808301926020929190829003018186803b158015613f1e57600080fd5b505afa158015613f32573d6000803e3d6000fd5b505050506040513d6020811015613f4857600080fd5b50516001600160a01b038281169116145b612f69576040805162461bcd60e51b81526020600482015260156024820152741c9958da5c1a595b9d081b9bdd08185b1b1bddd959605a1b604482015290519081900360640190fd5b6000613fad856150a8565b613fb56139a2565b50506000613fc161365c565b905060005b855181101561404657613fec868281518110613fde57fe5b6020026020010151836141b5565b613ff55761403e565b60006140178988848151811061400757fe5b6020026020010151886001614ce7565b9050614038898989858151811061402a57fe5b6020026020010151846150f4565b84019350505b600101613fc6565b50614052868385615298565b5095945050505050565b600080838311156140725750600090508061407b565b50600190508183035b9250929050565b3d604051818101604052816000823e821561409b578181f35b8181fd5b601e546001600160a01b031633146117ae576040805162461bcd60e51b81526020600482015260116024820152706674736f206d616e61676572206f6e6c7960781b604482015290519081900360640190fd5b60006127ea61410183856153b3565b614109615432565b90615451565b614118826154b8565b612f698282615530565b6001600160a01b0382166000908152600284016020526040812080545b80156141a65781546000199091019082908290811061415a57fe5b6000918252602090912001546201000090046001600160f01b031684106141a15781818154811061418757fe5b60009182526020909120015461ffff1692506127ea915050565b61413f565b50505060018301549392505050565b60006005548310806141c75750818310155b806141d3575060045483105b156141e057506000611c38565b50600192915050565b6141f161594f565b60006141fc8461377f565b9050600061420b858788615561565b90506000614217615977565b821561423857856142335761422d87898a615594565b60208201525b614256565b6142438888866155c7565b915061425087898461573f565b60208201525b8280614266575060008160200151115b151581526021546040805163ed475a7960e01b81526001600160a01b038b811660048301526024820188905291516060938493169163ed475a79916044808301926000929190829003018186803b1580156142c057600080fd5b505afa1580156142d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260808110156142fd57600080fd5b8101908080516040519392919084600160201b82111561431c57600080fd5b90830190602082018581111561433157600080fd5b82518660208202830111600160201b8211171561434d57600080fd5b82525081516020918201928201910280838360005b8381101561437a578181015183820152602001614362565b5050505090500160405260200180516040519392919084600160201b8211156143a257600080fd5b9083019060208201858111156143b757600080fd5b82518660208202830111600160201b821117156143d357600080fd5b82525081516020918201928201910280838360005b838110156144005781810151838201526020016143e8565b505050509190910160405250508351875194965092945091929150614428905057600061442b565b60015b60ff160167ffffffffffffffff8111801561444557600080fd5b5060405190808252806020026020018201604052801561446f578160200160208202803683370190505b508088525167ffffffffffffffff8111801561448a57600080fd5b506040519080825280602002602001820160405280156144b4578160200160208202803683370190505b50602088015286515167ffffffffffffffff811180156144d357600080fd5b506040519080825280602002602001820160405280156144fd578160200160208202803683370190505b50604088015286515167ffffffffffffffff8111801561451c57600080fd5b50604051908082528060200260200182016040528015614546578160200160208202803683370190505b5060608801528251156145ea5789876000015160008151811061456557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505084876060015160008151811061459757fe5b6020026020010190151590811515815250508387602001516000815181106145bb57fe5b602002602001018181525050826020015187604001516000815181106145dd57fe5b6020026020010181815250505b815115614846576021546040805163277166bf60e11b81526001600160a01b038d81166004830152602482018a905291516000939290921691634ee2cd7e91604480820192602092909190829003018186803b15801561464957600080fd5b505afa15801561465d573d6000803e3d6000fd5b505050506040513d602081101561467357600080fd5b5051905060005b8351811015614843576000818660000151614696576000614699565b60015b60ff160190508482815181106146ab57fe5b60200260200101518a6000015182815181106146c357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506147018c8684815181106146f357fe5b60200260200101518f615561565b8a60600151828151811061471157fe5b6020026020010190151590811515815250508960600151818151811061473357fe5b602002602001015115614785578a614780576147638c86848151811061475557fe5b60200260200101518f615594565b8a60400151828151811061477357fe5b6020026020010181815250505b61483a565b6147cc85838151811061479457fe5b60200260200101516147c68685815181106147ab57fe5b6020026020010151612710876148539092919063ffffffff16565b8e6157d1565b8a6020015182815181106147dc57fe5b60200260200101818152505061481d8c8684815181106147f857fe5b60200260200101518c60200151848151811061481057fe5b602002602001015161573f565b8a60400151828151811061482d57fe5b6020026020010181815250505b5060010161467a565b50505b5050505050509392505050565b600080821161489c576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836148a9575060006127ea565b838302838582816148b657fe5b0414156148cf578281816148c657fe5b049150506127ea565b60008386816148da57fe5b04905060008487816148e857fe5b06905060008587816148f657fe5b049050600086888161490457fe5b069050614946614918886141098685614953565b611a4d6149258686614953565b611a4d6149328987614953565b611a4d8d6149408c8b614953565b90614953565b9998505050505050505050565b60008261496257506000611c38565b8282028284828161496f57fe5b04146127ea5760405162461bcd60e51b81526004018080602001828103825260218152602001806159c46021913960400191505060405180910390fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156149f05781810151838201526020016149d8565b50505050905090810190601f168015614a1d5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015614a8557868181518110614a5357fe5b6020026020010151831415614a7d57858181518110614a6e57fe5b60200260200101519150614a85565b600101614a3e565b506001600160a01b038116611bf3576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b614b2082826040518060400160405280600981526020016824b7333630ba34b7b760b91b8152506149ac565b602060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614b7482826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b8152506149ac565b601e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614bc182826040518060400160405280600481526020016315d3985d60e21b8152506149ac565b602160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614c2782826040518060400160405280601881526020017f44656c65676174696f6e4163636f756e744d616e6167657200000000000000008152506149ac565b601f80546001600160a01b0319166001600160a01b03929092169190911790555050565b6000614c56846150a8565b614c5e6139a2565b50506000614c6a61365c565b905060005b8451811015614cd257614c87858281518110613fde57fe5b614c9057614cca565b6000614cb188878481518110614ca257fe5b602002602001015160016141e9565b9050614cc4888888858151811061402a57fe5b84019350505b600101614c6f565b50614cde858385615298565b50949350505050565b614cef61594f565b6000614cfa8561377f565b84518584529091508067ffffffffffffffff81118015614d1957600080fd5b50604051908082528060200260200182016040528015614d43578160200160208202803683370190505b5060208401528067ffffffffffffffff81118015614d6057600080fd5b50604051908082528060200260200182016040528015614d8a578160200160208202803683370190505b5060408401528067ffffffffffffffff81118015614da757600080fd5b50604051908082528060200260200182016040528015614dd1578160200160208202803683370190505b50606084015260005b8181101561501b57614e0087878381518110614df257fe5b60200260200101518a615561565b84606001518281518110614e1057fe5b60200260200101901515908115158152505083606001518181518110614e3257fe5b602002602001015115614e845784614e7f57614e6287878381518110614e5457fe5b60200260200101518a615594565b84604001518281518110614e7257fe5b6020026020010181815250505b615013565b876001600160a01b0316868281518110614e9a57fe5b60200260200101516001600160a01b03161415614edd57614ebc8888856155c7565b84602001518281518110614ecc57fe5b602002602001018181525050614fce565b60215486516000916001600160a01b03169063e64767aa908b908a9086908110614f0357fe5b6020026020010151876040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b158015614f6057600080fd5b505afa158015614f74573d6000803e3d6000fd5b505050506040513d6020811015614f8a57600080fd5b50518751909150614fb090889084908110614fa157fe5b6020026020010151828a6157d1565b85602001518381518110614fc057fe5b602002602001018181525050505b614ff687878381518110614fde57fe5b60200260200101518660200151848151811061481057fe5b8460400151828151811061500657fe5b6020026020010181815250505b600101614dda565b505050949350505050565b60008282111561507d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000611fd76017546139e06014546139e0601a546019546139fc90919063ffffffff16565b6001600160a01b038116612664576040805162461bcd60e51b815260206004820152600e60248201526d726563697069656e74207a65726f60901b604482015290519081900360640190fd5b600080805b835151811015615279578360600151818151811061511357fe5b60200260200101511561512557615271565b60008460000151828151811061513757fe5b6020026020010151905060008560200151838151811061515357fe5b6020026020010151905060008111156151905760008781526007602090815260408083206001600160a01b03861684529091529020805482900390555b6000866040015184815181106151a257fe5b6020026020010151905060008111156151eb5760008881526008602090815260408083206001600160a01b03871684529091529020805482900390556014805482019055938401935b6000888152600b602090815260408083206001600160a01b038088168086529184528285208f821680875290855294839020805460ff191660019081178255810187905583518e815294850187905283519095918f169491937f6ec685171a9028d19dc155a48e7824e3c68b03bc8995410e006abe3cbbeb3e2d928290030190a4505050505b6001016150f9565b506000848152600d602052604090208054820190559050949350505050565b81156153aa578015615313576021546040805163b760faf960e01b81526001600160a01b0386811660048301529151919092169163b760faf991859160248082019260009290919082900301818588803b1580156152f557600080fd5b505af1158015615309573d6000803e3d6000fd5b50505050506153aa565b6040516000906001600160a01b0385169084908381818185875af1925050503d806000811461535e576040519150601f19603f3d011682016040523d82523d6000602084013e615363565b606091505b50509050806153a8576040805162461bcd60e51b815260206004820152600c60248201526b18db185a5b4819985a5b195960a21b604482015290519081900360640190fd5b505b505047601d5550565b6000806153ce62093a7f601b546139fc90919063ffffffff16565b905080841115615419576040805162461bcd60e51b81526020600482015260116024820152706166746572206461696c79206379636c6560781b604482015290519081900360640190fd5b615427836141098387615026565b600101949350505050565b6000611fd76016546139e060135460185461502690919063ffffffff16565b60008082116154a7576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816154b057fe5b049392505050565b8054156126645780546001820190600090839060001981019081106154d957fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812055805481908061550957fe5b600082815260209020810160001990810180546001600160a01b03191690550190556154b8565b60005b81518110156124c3576155598383838151811061554c57fe5b6020026020010151615816565b600101615533565b6000928352600b602090815260408085206001600160a01b03948516865282528085209290931684525290205460ff1690565b6000928352600b602090815260408085206001600160a01b03948516865282528085209290931684525290206001015490565b60215460408051634181ad4160e11b81526001600160a01b038681166004830152602482018590529151600093849316916383035a82916044808301926020929190829003018186803b15801561561d57600080fd5b505afa158015615631573d6000803e3d6000fd5b505050506040513d602081101561564757600080fd5b505160215460408051631257fcdb60e31b81526001600160a01b03898116600483015260248201889052915193945060009391909216916392bfe6d8916044808301926020929190829003018186803b1580156156a357600080fd5b505afa1580156156b7573d6000803e3d6000fd5b505050506040513d60208110156156cd57600080fd5b50519050818114156156ee576156e581612710614953565b925050506127ea565b8181116156f757fe5b6000821561570d5761570b83612710614953565b015b600061571b600e8989614122565b905080156157345761572f84840382614953565b820191505b509695505050505050565b60008161574e575060006127ea565b60008481526008602090815260408083206001600160a01b0387168452909152902054806157805760009150506127ea565b60008581526007602090815260408083206001600160a01b0388168452909152902054838114156157b3575090506127ea565b8084106157bc57fe5b6157c7828583614853565b9695505050505050565b6000826157e0575060006127ea565b6000806157ef600e8786614122565b9050612710811015614cde5761580a85612710839003614953565b90910195945050505050565b6001600160a01b03811660009081526001830160205260409020541561583b57612f69565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b50805460018160011615610100020316600290046000825580601f106158a55750612664565b601f016020900490600052602060002090810190612664919061598e565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826158f9576000855561593f565b82601f1061591257805160ff191683800117855561593f565b8280016001018555821561593f579182015b8281111561593f578251825591602001919060010190615924565b5061594b92915061598e565b5090565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b604080518082019091526000808252602082015290565b5b8082111561594b576000815560010161598f56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220fff364d73df44b1e5477ff72d7c2989d28404f6686595c1059046f2dfae3665364736f6c63430007060033",
  "deployedBytecode": "0x6080604052600436106103765760003560e01c806384e10a90116101d1578063d20bb54211610102578063e416b7e1116100a0578063ed39d3f81161006f578063ed39d3f814611644578063f2edab5a14611659578063f5a9838314611683578063f5f5ba721461169857610376565b8063e416b7e11461147c578063e7c830d4146115e1578063ea28edad146115f6578063eb82dd7f1461160b57610376565b8063d6c1dbee116100dc578063d6c1dbee146113e0578063dfd14c341461140a578063e17f212e1461143d578063e27395631461145257610376565b8063d20bb542146111c8578063d2a4ac6114611308578063d418634a146113b657610376565b8063a9b79e171161016f578063b482403411610149578063b482403414611084578063b4a2043d14611099578063cb010c48146110cc578063cfbcd25f1461119557610376565b8063a9b79e1714610d39578063b00c0b7614610e96578063b2af870a14610fc657610376565b8063961c00ed116101ab578063961c00ed14610b985780639d6a890f14610bd15780639edbf00714610c04578063a4472c1014610c1957610376565b806384e10a9014610a2957806385b4c53814610a8e5780639119c49414610aea57610376565b806333b7971e116102ab57806362354e031161024957806367fc40291161022357806367fc4029146108fa57806374e6310e1461092e5780637b6b2c0a146109e157806382a2b905146109f657610376565b806362354e0314610876578063657d96951461088b57806367dcac53146108c457610376565b806351b42b001161028557806351b42b00146108035780635267a15d146108185780635aa6e6751461082d5780635ff270791461084257610376565b806333b7971e1461065a5780633e7ff8571461076b5780633f317fe11461078057610376565b806312f97ac0116103185780631de56098116102f25780631de56098146104b257806321bb25af146104c75780632dafdbbf146106125780633123b7d81461064557610376565b806312f97ac01461044c57806316e693281461046157806316fe49c71461049d57610376565b806307e41fe81161035457806307e41fe8146103dc5780630cb723441461040d5780630f15f4c01461042257806311a7aaaa1461043757610376565b806302fb0c5e1461037b5780630441218e146103a457806306201f1d146103d2575b600080fd5b34801561038757600080fd5b50610390611722565b604080519115158252519081900360200190f35b3480156103b057600080fd5b506103b961172b565b6040805192835260208301919091528051918290030190f35b6103da61173f565b005b3480156103e857600080fd5b506103f16117b0565b604080516001600160a01b039092168252519081900360200190f35b34801561041957600080fd5b506103f16117bf565b34801561042e57600080fd5b506103da6117e3565b34801561044357600080fd5b506103f1611879565b34801561045857600080fd5b506103f1611888565b34801561046d57600080fd5b5061048b6004803603602081101561048457600080fd5b5035611897565b60408051918252519081900360200190f35b3480156104a957600080fd5b5061048b611973565b3480156104be57600080fd5b506103da611979565b3480156104d357600080fd5b5061048b600480360360a08110156104ea57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561051d57600080fd5b82018360208201111561052f57600080fd5b803590602001918460208302840111600160201b8311171561055057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561059f57600080fd5b8201836020820111156105b157600080fd5b803590602001918460208302840111600160201b831117156105d257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050611b69565b34801561061e57600080fd5b50610627611bfc565b60408051938452602084019290925282820152519081900360600190f35b34801561065157600080fd5b5061048b611c27565b34801561066657600080fd5b5061068d6004803603602081101561067d57600080fd5b50356001600160a01b0316611c3e565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156106d55781810151838201526020016106bd565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156107145781810151838201526020016106fc565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561075357818101518382015260200161073b565b50505050905001965050505050505060405180910390f35b34801561077757600080fd5b5061048b611e92565b34801561078c57600080fd5b506107b3600480360360208110156107a357600080fd5b50356001600160a01b0316611e98565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107ef5781810151838201526020016107d7565b505050509050019250505060405180910390f35b34801561080f57600080fd5b506103da611f0e565b34801561082457600080fd5b506103f1611f22565b34801561083957600080fd5b506103f1611f47565b34801561084e57600080fd5b506103da6004803603602081101561086557600080fd5b50356001600160e01b031916611fdc565b34801561088257600080fd5b506103f1612331565b34801561089757600080fd5b506103b9600480360360408110156108ae57600080fd5b50803590602001356001600160a01b031661233c565b3480156108d057600080fd5b506103da600480360360608110156108e757600080fd5b5080359060208101359060400135612378565b34801561090657600080fd5b506103da6004803603602081101561091d57600080fd5b50356001600160e01b0319166123e0565b34801561093a57600080fd5b506109626004803603602081101561095157600080fd5b50356001600160e01b0319166124c8565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156109a557818101518382015260200161098d565b50505050905090810190601f1680156109d25780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156109ed57600080fd5b5061048b61256e565b348015610a0257600080fd5b506103da60048036036020811015610a1957600080fd5b50356001600160a01b0316612574565b348015610a3557600080fd5b50610a3e612667565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015261012083015251908190036101400190f35b348015610a9a57600080fd5b50610acf60048036036060811015610ab157600080fd5b508035906001600160a01b0360208201358116916040013516612691565b60408051921515835260208301919091528051918290030190f35b348015610af657600080fd5b506103da60048036036020811015610b0d57600080fd5b810190602081018135600160201b811115610b2757600080fd5b820183602082011115610b3957600080fd5b803590602001918460208302840111600160201b83111715610b5a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506126cd945050505050565b348015610ba457600080fd5b5061048b60048036036040811015610bbb57600080fd5b506001600160a01b03813516906020013561276f565b348015610bdd57600080fd5b506103da60048036036020811015610bf457600080fd5b50356001600160a01b03166127f1565b348015610c1057600080fd5b506103f16128aa565b348015610c2557600080fd5b50610c5260048036036040811015610c3c57600080fd5b506001600160a01b0381351690602001356128b9565b604051808060200180602001806020018515158152602001848103845288818151815260200191508051906020019060200280838360005b83811015610ca2578181015183820152602001610c8a565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015610ce1578181015183820152602001610cc9565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015610d20578181015183820152602001610d08565b5050505090500197505050505050505060405180910390f35b348015610d4557600080fd5b506103da6004803603610120811015610d5d57600080fd5b810190602081018135600160201b811115610d7757600080fd5b820183602082011115610d8957600080fd5b803590602001918460208302840111600160201b83111715610daa57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610df957600080fd5b820183602082011115610e0b57600080fd5b803590602001918460208302840111600160201b83111715610e2c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550508235935050506020810135906001600160a01b036040820135169060608101359060808101359060a08101359060c00135612923565b348015610ea257600080fd5b506103da60048036036040811015610eb957600080fd5b810190602081018135600160201b811115610ed357600080fd5b820183602082011115610ee557600080fd5b803590602001918460208302840111600160201b83111715610f0657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460208302840111600160201b83111715610f8857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612ec2945050505050565b348015610fd257600080fd5b5061048b60048036036040811015610fe957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561101357600080fd5b82018360208201111561102557600080fd5b803590602001918460208302840111600160201b8311171561104657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612f6d945050505050565b34801561109057600080fd5b5061048b612fdc565b3480156110a557600080fd5b506107b3600480360360208110156110bc57600080fd5b50356001600160a01b0316612fe2565b3480156110d857600080fd5b5061048b600480360360808110156110ef57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561112257600080fd5b82018360208201111561113457600080fd5b803590602001918460208302840111600160201b8311171561115557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050613189565b3480156111a157600080fd5b5061048b600480360360208110156111b857600080fd5b50356001600160a01b031661321a565b3480156111d457600080fd5b5061048b600480360360608110156111eb57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561121557600080fd5b82018360208201111561122757600080fd5b803590602001918460208302840111600160201b8311171561124857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561129757600080fd5b8201836020820111156112a957600080fd5b803590602001918460208302840111600160201b831117156112ca57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613231945050505050565b34801561131457600080fd5b506103da6004803603602081101561132b57600080fd5b810190602081018135600160201b81111561134557600080fd5b82018360208201111561135757600080fd5b803590602001918460208302840111600160201b8311171561137857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506132a1945050505050565b3480156113c257600080fd5b506103b9600480360360208110156113d957600080fd5b503561332b565b3480156113ec57600080fd5b506103da6004803603602081101561140357600080fd5b503561334a565b34801561141657600080fd5b506107b36004803603602081101561142d57600080fd5b50356001600160a01b031661351d565b34801561144957600080fd5b50610390613591565b34801561145e57600080fd5b506103da6004803603602081101561147557600080fd5b50356135a1565b34801561148857600080fd5b5061153f6004803603606081101561149f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156114ce57600080fd5b8201836020820111156114e057600080fd5b803590602001918460208302840111600160201b8311171561150157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506135f8945050505050565b6040518080602001806020018415158152602001838103835286818151815260200191508051906020019060200280838360005b8381101561158b578181015183820152602001611573565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156115ca5781810151838201526020016115b2565b505050509050019550505050505060405180910390f35b3480156115ed57600080fd5b5061048b61365c565b34801561160257600080fd5b506103da6136a1565b34801561161757600080fd5b506103b96004803603604081101561162e57600080fd5b50803590602001356001600160a01b0316613734565b34801561165057600080fd5b506103f1613770565b34801561166557600080fd5b5061048b6004803603602081101561167c57600080fd5b503561377f565b34801561168f57600080fd5b506103da6137fd565b3480156116a457600080fd5b506116ad6138b7565b6040805160208082528351818301528351919283929083019185019080838360005b838110156116e75781810151838201526020016116cf565b50505050905090810190601f1680156117145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60035460ff1681565b6000806117366138e2565b90939092509050565b611747613952565b60006117516139a2565b5060195490915061176290346139fc565b601955601d819055611772613a56565b6040805134815290517f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379181900360200190a1506117ae613b30565b565b601f546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6117eb613b7c565b6020546001600160a01b03161580159061180f5750601e546001600160a01b031615155b801561182557506021546001600160a01b031615155b61186a576040805162461bcd60e51b81526020600482015260116024820152701859191c995cdcd95cc81b9bdd081cd95d607a1b604482015290519081900360640190fd5b6003805460ff19166001179055565b601e546001600160a01b031681565b6022546001600160a01b031681565b60008073__$b9040dea2fd9c47e6b7e0e916053de4d6b$__63e937a562600e856118bf61365c565b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561190157600080fd5b505af4158015611915573d6000803e3d6000fd5b505050506040513d602081101561192b57600080fd5b50516040805185815260208101839052815192935033927fd89f05622c2dcb0b4fcaa19e62fc2a2b0923955685fb7b0c641467f764244abc929181900390910190a292915050565b600e5490565b600054600160b01b900460ff168061199b5750600054600160a81b900460ff16155b15611b5e576119a8613bdb565b60035460ff161580156119e357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b80156119ef5750600654155b80156119fb5750600554155b611a40576040805162461bcd60e51b81526020600482015260116024820152706e6f7420696e697469616c20737461746560781b604482015290519081900360640190fd5b611a536001611a4d61365c565b906139fc565b600655601e5460408051633e7ff85760e01b815290516001600160a01b0390921691633e7ff85791600480820192602092909190829003018186803b158015611a9b57600080fd5b505afa158015611aaf573d6000803e3d6000fd5b505050506040513d6020811015611ac557600080fd5b505160055560408051633db5960560e11b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691637b6b2c0a916004808301926020929190829003018186803b158015611b2a57600080fd5b505afa158015611b3e573d6000803e3d6000fd5b505050506040513d6020811015611b5457600080fd5b50516004556117ae565b6117ae600036613c10565b6000611b73613d93565b600280541415611bb8576040805162461bcd60e51b815260206004820152601f60248201526000805160206159a4833981519152604482015290519081900360640190fd5b6002805585611bc681613dea565b8686611bd28282613e70565b611bdf8989898989613fa2565b60016002559350611bf39250613b30915050565b95945050505050565b600080600080601854611c1c6017546014546139fc90919063ffffffff16565b925092509250909192565b600654600090611c3890600161405c565b92915050565b6060808073__$b9040dea2fd9c47e6b7e0e916053de4d6b$__6325459925600e86611c6761365c565b6040518463ffffffff1660e01b815260040180848152602001836001600160a01b03168152602001828152602001935050505060006040518083038186803b158015611cb257600080fd5b505af4158015611cc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526060811015611cef57600080fd5b8101908080516040519392919084600160201b821115611d0e57600080fd5b908301906020820185811115611d2357600080fd5b82518660208202830111600160201b82111715611d3f57600080fd5b82525081516020918201928201910280838360005b83811015611d6c578181015183820152602001611d54565b5050505090500160405260200180516040519392919084600160201b821115611d9457600080fd5b908301906020820185811115611da957600080fd5b82518660208202830111600160201b82111715611dc557600080fd5b82525081516020918201928201910280838360005b83811015611df2578181015183820152602001611dda565b5050505090500160405260200180516040519392919084600160201b821115611e1a57600080fd5b908301906020820185811115611e2f57600080fd5b82518660208202830111600160201b82111715611e4b57600080fd5b82525081516020918201928201910280838360005b83811015611e78578181015183820152602001611e60565b505050509050016040525050509250925092509193909250565b60055490565b6001600160a01b038116600090815260116020908152604091829020805483518184028101840190945280845260609392830182828015611f0257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ee4575b50505050509050919050565b611f16613b7c565b6003805460ff19169055565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611f6a576000546001600160a01b0316611fd7565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015611faa57600080fd5b505afa158015611fbe573d6000803e3d6000fd5b505050506040513d6020811015611fd457600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561202057600080fd5b505afa158015612034573d6000803e3d6000fd5b505050506040513d602081101561204a57600080fd5b505161208d576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b03198116600090815260016020526040902080546120f9576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b805442101561214f576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121e95780601f106121be576101008083540402835291602001916121e9565b820191906000526020600020905b8154815290600101906020018083116121cc57829003601f168201915b5050506001600160e01b031986166000908152600160208190526040822082815594955090925061221d915083018261587f565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b602083106122655780518252601f199092019160209182019101612246565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146122c7576040519150601f19603f3d011682016040523d82523d6000602084013e6122cc565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a161232b81614082565b50505050565b60076001609c1b0181565b60008281526008602090815260408083206001600160a01b03909416808452938252808320549483526007825280832093835292905220549091565b61238061409f565b600061238c83836140f2565b60165490915061239c90826139fc565b601655604080518581526020810183905281517f754fa5a3ace0438b80ec651f7d61e44f761a808ebd17d7ce70da619399611a08929181900390910190a150505050565b6123e8613b7c565b6001600160e01b03198116600090815260016020526040902054612453576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906124c39083018261587f565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156125645780601f1061253957610100808354040283529160200191612564565b820191906000526020600020905b81548152906001019060200180831161254757829003601f168201915b5050505050905082565b60045481565b600054600160b01b900460ff16806125965750600054600160a81b900460ff16155b15612659576125a3613bdb565b6022546001600160a01b0316156125ef576040805162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b604482015290519081900360640190fd5b6001600160a01b038116612639576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b602280546001600160a01b0319166001600160a01b038316179055612664565b612664600036613c10565b50565b601354601454601554601654601754601854601954601a54601b54601c5490919293949596979899565b6000928352600b602090815260408085206001600160a01b0394851686528252808520929093168452529020805460019091015460ff90911691565b3360009081526011602052604090206126e6908261410f565b7fa802dcd9d0db82c5fc0b043e16d9ab77391cff1b84415bce9e95c4a8d6fe7146338260405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015612758578181015183820152602001612740565b50505050905001935050505060405180910390a150565b60008161277a611c27565b111580156127965750600e5461279290611a4d61365c565b8211155b6127de576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840e4caeec2e4c840cae0dec6d60631b604482015290519081900360640190fd5b6127ea600e8484614122565b9392505050565b600054600160a01b900460ff1615612847576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6021546001600160a01b031681565b60608060606000806128c961365c565b90506128d586826141b5565b915081806128ef575080861480156128ef57506004548610155b15612919576000612902888860006141e9565b805160408201516060909201519097509095509350505b5092959194509250565b61292b61409f565b861580159061293a5750885115155b61294057fe5b600061294c85846140f2565b905060008a5167ffffffffffffffff8111801561296857600080fd5b50604051908082528060200260200182016040528015612992578160200160208202803683370190505b50905081816000815181106129a357fe5b602002602001018181525050888a6000815181106129bd57fe5b60209081029190910101528a51600019015b612a1f8b82815181106129de57fe5b60200260200101518c6000815181106129f357fe5b602002602001015184600081518110612a0857fe5b60200260200101516148539092919063ffffffff16565b828281518110612a2b57fe5b602002602001018181525050818181518110612a4357fe5b60200260200101516008600088815260200190815260200160002060008e8481518110612a6c57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282540192505081905550612b56612710602160009054906101000a90046001600160a01b03166001600160a01b03166392bfe6d88f8581518110612ad757fe5b6020026020010151886040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015612b2457600080fd5b505afa158015612b38573d6000803e3d6000fd5b505050506040513d6020811015612b4e57600080fd5b505190614953565b6007600088815260200190815260200160002060008e8481518110612b7757fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550818181518110612baf57fe5b6020026020010151600a600088815260200190815260200160002060008e8481518110612bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082825401925050819055506009600087815260200190815260200160002060008d8381518110612c2e57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460001415612d47576021548c516001600160a01b03909116906304bb4e43908e9084908110612c8257fe5b6020026020010151866040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015612ccf57600080fd5b505afa158015612ce3573d6000803e3d6000fd5b505050506040513d6020811015612cf957600080fd5b505160008781526009602052604081208e519091908f9085908110612d1a57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055505b80612d5157612dc0565b818181518110612d5d57fe5b602002602001015182600081518110612d7257fe5b6020026020010181815103915081815250508a8181518110612d9057fe5b60200260200101518b600081518110612da557fe5b602090810291909101018051919091039052600019016129cf565b6000868152600c60205260409020805484019055601354612de190846139fc565b601381905550876001600160a01b03167f8b2bc56c62594afde5b520e83e1ca19ebd071798db21382e328014f47b31ce578a8e85604051808481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612e5f578181015183820152602001612e47565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612e9e578181015183820152602001612e86565b505050509050019550505050505060405180910390a2505050505050505050505050565b612eca611f22565b6001600160a01b0316336001600160a01b031614612f26576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b612f5f612f5a83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506149ac565b614ad0565b612f698282614af4565b5050565b6000612f77613d93565b600280541415612fbc576040805162461bcd60e51b815260206004820152601f60248201526000805160206159a4833981519152604482015290519081900360640190fd5b60028055612fcd3384846000614c4b565b60016002559050611c38613b30565b600f5490565b6060600080612fef6138e2565b909250905060018282030160008167ffffffffffffffff8111801561301357600080fd5b5060405190808252806020026020018201604052801561303d578160200160208202803683370190505b5090506000805b838110156130ea57600061305c8983890160016141e9565b905060005b8160600151518110156130e0578160600151818151811061307e57fe5b60200260200101511580156130aa57506000826040015182815181106130a057fe5b6020026020010151115b156130d85760018584815181106130bd57fe5b911515602092830291909101909101526001909301926130e0565b600101613061565b5050600101613044565b508067ffffffffffffffff8111801561310257600080fd5b5060405190808252806020026020018201604052801561312c578160200160208202803683370190505b5095506000805b8481101561317d5783818151811061314757fe5b6020026020010151156131755780870188838151811061316357fe5b60209081029190910101526001909101905b600101613133565b50505050505050919050565b6000613193613d93565b6002805414156131d8576040805162461bcd60e51b815260206004820152601f60248201526000805160206159a4833981519152604482015290519081900360640190fd5b60028055846131e681613dea565b85856131f28282613e70565b6131fe88888888614c4b565b600160025593506132129250613b30915050565b949350505050565b6000611c388261322861365c565b600e9190614122565b600061323b613d93565b600280541415613280576040805162461bcd60e51b815260206004820152601f60248201526000805160206159a4833981519152604482015290519081900360640190fd5b60028055613292338585856000613fa2565b600160025590506127ea613b30565b3360009081526012602052604090206132ba908261410f565b7ff650948f1320658fded6be6217b1fe9963894116bc6b3dbc9b1c2cc8cf2cb11f338260405180836001600160a01b03168152602001806020018281038252838181518152602001915080519060200190602002808383600083811015612758578181015183820152602001612740565b6000908152600c6020908152604080832054600d909252909120549091565b601e546001600160a01b031633148061336d57506022546001600160a01b031633145b6133ae576040805162461bcd60e51b815260206004820152600d60248201526c6f6e6c79206d616e616765727360981b604482015290519081900360640190fd5b80600554146133f5576040805162461bcd60e51b815260206004820152600e60248201526d1ddc9bdb99c8195c1bd8da081a5960921b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061342e575060065481105b156134b2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6c1dbee826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561349957600080fd5b505af11580156134ad573d6000803e3d6000fd5b505050505b6000818152600d6020908152604080832054600c90925290912054601554919003906134de90826139fc565b6015556040805183815290517f5d05c64f281304391697cf987812e1a736413a062a9bdf39af4102209eb6fa589181900360200190a150600101600555565b6001600160a01b038116600090815260126020908152604091829020805483518184028101840190945280845260609392830182828015611f02576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611ee45750505050509050919050565b600054600160a81b900460ff1681565b6135a9613952565b601c8190556018546135bb90826139fc565b60185542601b556040805182815290517f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959181900360200190a150565b60608060008061360661365c565b905061361286826141b5565b9150818061362c5750808614801561362c57506004548610155b156136525760006136408888886000614ce7565b90508060400151945080606001519350505b5093509350939050565b601e54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015611faa57600080fd5b6136a9613b7c565b600019600454146136f3576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b604482015290519081900360640190fd5b6136fb61365c565b600481905560408051918252517f1cfb844c44f9325fc9ad6cc6191a4a24b0415137fe300b6c9071523a253f7a089181900360200190a1565b6000828152600a602090815260408083206001600160a01b03909416808452938252808320549483526009825280832093835292905220549091565b6020546001600160a01b031690565b601e5460408051637976d5ad60e11b81526004810184905290516000926001600160a01b03169163f2edab5a916024808301926020929190829003018186803b1580156137cb57600080fd5b505afa1580156137df573d6000803e3d6000fd5b505050506040513d60208110156137f557600080fd5b505192915050565b613805613b7c565b600054600160a81b900460ff1615613864576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b604080518082019091526011815270233a39b7a932bbb0b93226b0b730b3b2b960791b602082015290565b6005546000806138f061365c565b905060008111613947576040805162461bcd60e51b815260206004820152601f60248201527f6e6f2065706f6368207769746820636c61696d61626c65207265776172647300604482015290519081900360640190fd5b600181039150509091565b6020546001600160a01b031633146117ae576040805162461bcd60e51b815260206004820152600e60248201526d696e666c6174696f6e206f6e6c7960901b604482015290519081900360640190fd5b6000806139ba34601d546139fc90919063ffffffff16565b9050479150808211156139ee576139e6816139e084601a546139fc90919063ffffffff16565b90615026565b601a556139f8565b808210156139f857fe5b9091565b6000828201838110156127ea576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000613a756017546139e06015546016546139fc90919063ffffffff16565b90508015612664576000613a8c4760146064614853565b9050600081831115613a9f575080613aa2565b50815b80156124c357601754613ab590826139fc565b601755601d54613ac59082615026565b601d5560405161dead9082156108fc029083906000818181858888f19350505050158015613af7573d6000803e3d6000fd5b506040805182815290517f44d5cd18c37b86a3423952287006d9550ab3cff404d6e899d5499d9ef87100b59181900360200190a1505050565b613b38615083565b47146117ae576040805162461bcd60e51b815260206004820152600e60248201526d6f7574206f662062616c616e636560901b604482015290519081900360640190fd5b613b84611f47565b6001600160a01b0316336001600160a01b0316146117ae576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054600160b01b900460ff1615613c0857333014613bf657fe5b6000805460ff60b01b191690556117ae565b6117ae613b7c565b613c18613b7c565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613c6057600080fd5b505afa158015613c74573d6000803e3d6000fd5b505050506040513d6020811015613c8a57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450613d0e939285019201906158c3565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60035460ff166117ae576040805162461bcd60e51b815260206004820152601a60248201527f726577617264206d616e61676572206465616374697661746564000000000000604482015290519081900360640190fd5b6001600160a01b038116331480613e2657506001600160a01b038116600090815260116020908152604080832033845260010190915290205415155b612664576040805162461bcd60e51b815260206004820152601660248201527537b7363c9037bbb732b91037b91032bc32b1baba37b960511b604482015290519081900360640190fd5b336001600160a01b0383161480613e985750816001600160a01b0316816001600160a01b0316145b80613ecb57506001600160a01b038083166000908152601260209081526040808320938516835260019093019052205415155b80613f595750601f54604080516369ea238760e01b81526001600160a01b038581166004830152915191909216916369ea2387916024808301926020929190829003018186803b158015613f1e57600080fd5b505afa158015613f32573d6000803e3d6000fd5b505050506040513d6020811015613f4857600080fd5b50516001600160a01b038281169116145b612f69576040805162461bcd60e51b81526020600482015260156024820152741c9958da5c1a595b9d081b9bdd08185b1b1bddd959605a1b604482015290519081900360640190fd5b6000613fad856150a8565b613fb56139a2565b50506000613fc161365c565b905060005b855181101561404657613fec868281518110613fde57fe5b6020026020010151836141b5565b613ff55761403e565b60006140178988848151811061400757fe5b6020026020010151886001614ce7565b9050614038898989858151811061402a57fe5b6020026020010151846150f4565b84019350505b600101613fc6565b50614052868385615298565b5095945050505050565b600080838311156140725750600090508061407b565b50600190508183035b9250929050565b3d604051818101604052816000823e821561409b578181f35b8181fd5b601e546001600160a01b031633146117ae576040805162461bcd60e51b81526020600482015260116024820152706674736f206d616e61676572206f6e6c7960781b604482015290519081900360640190fd5b60006127ea61410183856153b3565b614109615432565b90615451565b614118826154b8565b612f698282615530565b6001600160a01b0382166000908152600284016020526040812080545b80156141a65781546000199091019082908290811061415a57fe5b6000918252602090912001546201000090046001600160f01b031684106141a15781818154811061418757fe5b60009182526020909120015461ffff1692506127ea915050565b61413f565b50505060018301549392505050565b60006005548310806141c75750818310155b806141d3575060045483105b156141e057506000611c38565b50600192915050565b6141f161594f565b60006141fc8461377f565b9050600061420b858788615561565b90506000614217615977565b821561423857856142335761422d87898a615594565b60208201525b614256565b6142438888866155c7565b915061425087898461573f565b60208201525b8280614266575060008160200151115b151581526021546040805163ed475a7960e01b81526001600160a01b038b811660048301526024820188905291516060938493169163ed475a79916044808301926000929190829003018186803b1580156142c057600080fd5b505afa1580156142d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260808110156142fd57600080fd5b8101908080516040519392919084600160201b82111561431c57600080fd5b90830190602082018581111561433157600080fd5b82518660208202830111600160201b8211171561434d57600080fd5b82525081516020918201928201910280838360005b8381101561437a578181015183820152602001614362565b5050505090500160405260200180516040519392919084600160201b8211156143a257600080fd5b9083019060208201858111156143b757600080fd5b82518660208202830111600160201b821117156143d357600080fd5b82525081516020918201928201910280838360005b838110156144005781810151838201526020016143e8565b505050509190910160405250508351875194965092945091929150614428905057600061442b565b60015b60ff160167ffffffffffffffff8111801561444557600080fd5b5060405190808252806020026020018201604052801561446f578160200160208202803683370190505b508088525167ffffffffffffffff8111801561448a57600080fd5b506040519080825280602002602001820160405280156144b4578160200160208202803683370190505b50602088015286515167ffffffffffffffff811180156144d357600080fd5b506040519080825280602002602001820160405280156144fd578160200160208202803683370190505b50604088015286515167ffffffffffffffff8111801561451c57600080fd5b50604051908082528060200260200182016040528015614546578160200160208202803683370190505b5060608801528251156145ea5789876000015160008151811061456557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505084876060015160008151811061459757fe5b6020026020010190151590811515815250508387602001516000815181106145bb57fe5b602002602001018181525050826020015187604001516000815181106145dd57fe5b6020026020010181815250505b815115614846576021546040805163277166bf60e11b81526001600160a01b038d81166004830152602482018a905291516000939290921691634ee2cd7e91604480820192602092909190829003018186803b15801561464957600080fd5b505afa15801561465d573d6000803e3d6000fd5b505050506040513d602081101561467357600080fd5b5051905060005b8351811015614843576000818660000151614696576000614699565b60015b60ff160190508482815181106146ab57fe5b60200260200101518a6000015182815181106146c357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506147018c8684815181106146f357fe5b60200260200101518f615561565b8a60600151828151811061471157fe5b6020026020010190151590811515815250508960600151818151811061473357fe5b602002602001015115614785578a614780576147638c86848151811061475557fe5b60200260200101518f615594565b8a60400151828151811061477357fe5b6020026020010181815250505b61483a565b6147cc85838151811061479457fe5b60200260200101516147c68685815181106147ab57fe5b6020026020010151612710876148539092919063ffffffff16565b8e6157d1565b8a6020015182815181106147dc57fe5b60200260200101818152505061481d8c8684815181106147f857fe5b60200260200101518c60200151848151811061481057fe5b602002602001015161573f565b8a60400151828151811061482d57fe5b6020026020010181815250505b5060010161467a565b50505b5050505050509392505050565b600080821161489c576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836148a9575060006127ea565b838302838582816148b657fe5b0414156148cf578281816148c657fe5b049150506127ea565b60008386816148da57fe5b04905060008487816148e857fe5b06905060008587816148f657fe5b049050600086888161490457fe5b069050614946614918886141098685614953565b611a4d6149258686614953565b611a4d6149328987614953565b611a4d8d6149408c8b614953565b90614953565b9998505050505050505050565b60008261496257506000611c38565b8282028284828161496f57fe5b04146127ea5760405162461bcd60e51b81526004018080602001828103825260218152602001806159c46021913960400191505060405180910390fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156149f05781810151838201526020016149d8565b50505050905090810190601f168015614a1d5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015614a8557868181518110614a5357fe5b6020026020010151831415614a7d57858181518110614a6e57fe5b60200260200101519150614a85565b600101614a3e565b506001600160a01b038116611bf3576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b614b2082826040518060400160405280600981526020016824b7333630ba34b7b760b91b8152506149ac565b602060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614b7482826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b8152506149ac565b601e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614bc182826040518060400160405280600481526020016315d3985d60e21b8152506149ac565b602160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614c2782826040518060400160405280601881526020017f44656c65676174696f6e4163636f756e744d616e6167657200000000000000008152506149ac565b601f80546001600160a01b0319166001600160a01b03929092169190911790555050565b6000614c56846150a8565b614c5e6139a2565b50506000614c6a61365c565b905060005b8451811015614cd257614c87858281518110613fde57fe5b614c9057614cca565b6000614cb188878481518110614ca257fe5b602002602001015160016141e9565b9050614cc4888888858151811061402a57fe5b84019350505b600101614c6f565b50614cde858385615298565b50949350505050565b614cef61594f565b6000614cfa8561377f565b84518584529091508067ffffffffffffffff81118015614d1957600080fd5b50604051908082528060200260200182016040528015614d43578160200160208202803683370190505b5060208401528067ffffffffffffffff81118015614d6057600080fd5b50604051908082528060200260200182016040528015614d8a578160200160208202803683370190505b5060408401528067ffffffffffffffff81118015614da757600080fd5b50604051908082528060200260200182016040528015614dd1578160200160208202803683370190505b50606084015260005b8181101561501b57614e0087878381518110614df257fe5b60200260200101518a615561565b84606001518281518110614e1057fe5b60200260200101901515908115158152505083606001518181518110614e3257fe5b602002602001015115614e845784614e7f57614e6287878381518110614e5457fe5b60200260200101518a615594565b84604001518281518110614e7257fe5b6020026020010181815250505b615013565b876001600160a01b0316868281518110614e9a57fe5b60200260200101516001600160a01b03161415614edd57614ebc8888856155c7565b84602001518281518110614ecc57fe5b602002602001018181525050614fce565b60215486516000916001600160a01b03169063e64767aa908b908a9086908110614f0357fe5b6020026020010151876040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b158015614f6057600080fd5b505afa158015614f74573d6000803e3d6000fd5b505050506040513d6020811015614f8a57600080fd5b50518751909150614fb090889084908110614fa157fe5b6020026020010151828a6157d1565b85602001518381518110614fc057fe5b602002602001018181525050505b614ff687878381518110614fde57fe5b60200260200101518660200151848151811061481057fe5b8460400151828151811061500657fe5b6020026020010181815250505b600101614dda565b505050949350505050565b60008282111561507d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000611fd76017546139e06014546139e0601a546019546139fc90919063ffffffff16565b6001600160a01b038116612664576040805162461bcd60e51b815260206004820152600e60248201526d726563697069656e74207a65726f60901b604482015290519081900360640190fd5b600080805b835151811015615279578360600151818151811061511357fe5b60200260200101511561512557615271565b60008460000151828151811061513757fe5b6020026020010151905060008560200151838151811061515357fe5b6020026020010151905060008111156151905760008781526007602090815260408083206001600160a01b03861684529091529020805482900390555b6000866040015184815181106151a257fe5b6020026020010151905060008111156151eb5760008881526008602090815260408083206001600160a01b03871684529091529020805482900390556014805482019055938401935b6000888152600b602090815260408083206001600160a01b038088168086529184528285208f821680875290855294839020805460ff191660019081178255810187905583518e815294850187905283519095918f169491937f6ec685171a9028d19dc155a48e7824e3c68b03bc8995410e006abe3cbbeb3e2d928290030190a4505050505b6001016150f9565b506000848152600d602052604090208054820190559050949350505050565b81156153aa578015615313576021546040805163b760faf960e01b81526001600160a01b0386811660048301529151919092169163b760faf991859160248082019260009290919082900301818588803b1580156152f557600080fd5b505af1158015615309573d6000803e3d6000fd5b50505050506153aa565b6040516000906001600160a01b0385169084908381818185875af1925050503d806000811461535e576040519150601f19603f3d011682016040523d82523d6000602084013e615363565b606091505b50509050806153a8576040805162461bcd60e51b815260206004820152600c60248201526b18db185a5b4819985a5b195960a21b604482015290519081900360640190fd5b505b505047601d5550565b6000806153ce62093a7f601b546139fc90919063ffffffff16565b905080841115615419576040805162461bcd60e51b81526020600482015260116024820152706166746572206461696c79206379636c6560781b604482015290519081900360640190fd5b615427836141098387615026565b600101949350505050565b6000611fd76016546139e060135460185461502690919063ffffffff16565b60008082116154a7576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816154b057fe5b049392505050565b8054156126645780546001820190600090839060001981019081106154d957fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812055805481908061550957fe5b600082815260209020810160001990810180546001600160a01b03191690550190556154b8565b60005b81518110156124c3576155598383838151811061554c57fe5b6020026020010151615816565b600101615533565b6000928352600b602090815260408085206001600160a01b03948516865282528085209290931684525290205460ff1690565b6000928352600b602090815260408085206001600160a01b03948516865282528085209290931684525290206001015490565b60215460408051634181ad4160e11b81526001600160a01b038681166004830152602482018590529151600093849316916383035a82916044808301926020929190829003018186803b15801561561d57600080fd5b505afa158015615631573d6000803e3d6000fd5b505050506040513d602081101561564757600080fd5b505160215460408051631257fcdb60e31b81526001600160a01b03898116600483015260248201889052915193945060009391909216916392bfe6d8916044808301926020929190829003018186803b1580156156a357600080fd5b505afa1580156156b7573d6000803e3d6000fd5b505050506040513d60208110156156cd57600080fd5b50519050818114156156ee576156e581612710614953565b925050506127ea565b8181116156f757fe5b6000821561570d5761570b83612710614953565b015b600061571b600e8989614122565b905080156157345761572f84840382614953565b820191505b509695505050505050565b60008161574e575060006127ea565b60008481526008602090815260408083206001600160a01b0387168452909152902054806157805760009150506127ea565b60008581526007602090815260408083206001600160a01b0388168452909152902054838114156157b3575090506127ea565b8084106157bc57fe5b6157c7828583614853565b9695505050505050565b6000826157e0575060006127ea565b6000806157ef600e8786614122565b9050612710811015614cde5761580a85612710839003614953565b90910195945050505050565b6001600160a01b03811660009081526001830160205260409020541561583b57612f69565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b50805460018160011615610100020316600290046000825580601f106158a55750612664565b601f016020900490600052602060002090810190612664919061598e565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826158f9576000855561593f565b82601f1061591257805160ff191683800117855561593f565b8280016001018555821561593f579182015b8281111561593f578251825591602001919060010190615924565b5061594b92915061598e565b5090565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b604080518082019091526000808252602082015290565b5b8082111561594b576000815560010161598f56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220fff364d73df44b1e5477ff72d7c2989d28404f6686595c1059046f2dfae3665364736f6c63430007060033",
  "linkReferences": {
    "contracts/tokenPools/lib/DataProviderFee.sol": {
      "DataProviderFee": [
        {
          "length": 20,
          "start": 6834
        },
        {
          "length": 20,
          "start": 7770
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/tokenPools/lib/DataProviderFee.sol": {
      "DataProviderFee": [
        {
          "length": 20,
          "start": 6300
        },
        {
          "length": 20,
          "start": 7236
        }
      ]
    }
  }
}
