{
  "_format": "hh-sol-artifact-1",
  "contractName": "PollingAccept",
  "sourceName": "contracts/governance/implementation/PollingAccept.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_proposalSettings",
          "type": "uint256[]"
        },
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_priceSubmitter",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_addressUpdater",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldAbsoluteThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newAbsoluteThreshold",
          "type": "uint256"
        }
      ],
      "name": "AbsoluteThresholdSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldExecutionDelay",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newExecutionDelay",
          "type": "uint256"
        }
      ],
      "name": "ExecutionDelaySet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldExecutionPeriod",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newExecutionPeriod",
          "type": "uint256"
        }
      ],
      "name": "ExecutionPeriodSet",
      "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": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "bytes[]",
          "name": "calldatas",
          "type": "bytes[]"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "startTime",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "endTime",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "votePowerBlock",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "wrappingThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "absoluteThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "relativeThreshold",
          "type": "uint256"
        }
      ],
      "name": "ProposalCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "ProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldProposalThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newProposalThreshold",
          "type": "uint256"
        }
      ],
      "name": "ProposalThresholdSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldRelativeThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newRelativeThreshold",
          "type": "uint256"
        }
      ],
      "name": "RelativeThresholdSet",
      "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": true,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "support",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "weight",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "VoteCast",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldVotePowerLifeTimeDays",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newVotePowerLifeTimeDays",
          "type": "uint256"
        }
      ],
      "name": "VotePowerLifeTimeDaysSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldVotingDelay",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newVotingDelay",
          "type": "uint256"
        }
      ],
      "name": "VotingDelaySet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldVotingPeriod",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newVotingPeriod",
          "type": "uint256"
        }
      ],
      "name": "VotingPeriodSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldVpBlockPeriodSeconds",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newVpBlockPeriodSeconds",
          "type": "uint256"
        }
      ],
      "name": "VpBlockPeriodSecondsSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldWrappingThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newWrappingThreshold",
          "type": "uint256"
        }
      ],
      "name": "WrappingThresholdSet",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "BALLOT_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "absoluteThreshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "_selector",
          "type": "bytes4"
        }
      ],
      "name": "cancelGovernanceCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "_support",
          "type": "uint8"
        }
      ],
      "name": "castVote",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "_support",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "_v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "_r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_s",
          "type": "bytes32"
        }
      ],
      "name": "castVoteBySig",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "_support",
          "type": "uint8"
        },
        {
          "internalType": "string",
          "name": "_reason",
          "type": "string"
        }
      ],
      "name": "castVoteWithReason",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "chainId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "_calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "_descriptionHash",
          "type": "bytes32"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_description",
          "type": "string"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "_selector",
          "type": "bytes4"
        }
      ],
      "name": "executeGovernanceCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "executionDelay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "executionPeriod",
      "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": "address[]",
          "name": "_targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "_calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "_descriptionHash",
          "type": "bytes32"
        }
      ],
      "name": "getProposalId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_votePowerBlock",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_voteStartTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_voteEndTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_execStartTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_execEndTime",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_executed",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalVP",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_totalVP",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_for",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_against",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_abstain",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getVotePowerLifeTimeDays",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_voter",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getVpBlockPeriodSeconds",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "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": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "hasVoted",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_initialGovernance",
          "type": "address"
        }
      ],
      "name": "initialise",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "priceSubmitter",
      "outputs": [
        {
          "internalType": "contract IPriceSubmitter",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "productionMode",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proposalThreshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "_calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "string",
          "name": "_description",
          "type": "string"
        }
      ],
      "name": "propose",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_description",
          "type": "string"
        }
      ],
      "name": "propose",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "quorum",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "relativeThreshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_absoluteThresholdBIPS",
          "type": "uint256"
        }
      ],
      "name": "setAbsoluteThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_executionDelaySeconds",
          "type": "uint256"
        }
      ],
      "name": "setExecutionDelay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_executionPeriodSeconds",
          "type": "uint256"
        }
      ],
      "name": "setExecutionPeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_proposalThresholdBIPS",
          "type": "uint256"
        }
      ],
      "name": "setProposalThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_relativeThresholdBIPS",
          "type": "uint256"
        }
      ],
      "name": "setRelativeThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_votePowerLifeTimeDays",
          "type": "uint256"
        }
      ],
      "name": "setVotePowerLifeTimeDays",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_votingDelaySeconds",
          "type": "uint256"
        }
      ],
      "name": "setVotingDelay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_votingPeriodSeconds",
          "type": "uint256"
        }
      ],
      "name": "setVotingPeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_vpBlockPeriodSeconds",
          "type": "uint256"
        }
      ],
      "name": "setVpBlockPeriodSeconds",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_wrappingThresholdBIPS",
          "type": "uint256"
        }
      ],
      "name": "setWrappingThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        }
      ],
      "name": "state",
      "outputs": [
        {
          "internalType": "enum IGovernor.ProposalState",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "supply",
      "outputs": [
        {
          "internalType": "contract IISupply",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "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": "votePower",
      "outputs": [
        {
          "internalType": "contract IIGovernanceVotePower",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingDelay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "wrappingThreshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6101606040523480156200001257600080fd5b5060405162004c7738038062004c77833981016040819052620000359162000765565b838383838083856000815181106200004957fe5b6020026020010151866001815181106200005f57fe5b6020026020010151876002815181106200007557fe5b6020026020010151886003815181106200008b57fe5b602002602001015189600481518110620000a157fe5b60200260200101518a600581518110620000b757fe5b60200260200101518b600681518110620000cd57fe5b60200260200101518c600781518110620000e357fe5b60200260200101518d600881518110620000f957fe5b60200260200101518e6009815181106200010f57fe5b60200260200101518a8062000129620002af60201b60201c565b62000133620002d6565b815160208084019190912082519183019190912060c082905260e08190527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200017c620002f1565b60a0526200018c818484620002f5565b60805261010052505050506001600160a01b03811615620001b257620001b28162000359565b506001600160a01b03811662000202576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506200020e8a6200041c565b62000219896200045e565b6200022488620004a0565b6200022f876200050e565b6200023a8662000550565b6200024585620005b5565b6200025084620005f7565b6200025b8362000639565b62000266826200067b565b6200027181620006bd565b50504661012052506200028f97508896505062000724945050505050565b505060601b6001600160601b031916610140525062000906945050505050565b60408051808201909152600d81526c141bdb1b1a5b99d058d8d95c1d609a1b602082015290565b6040805180820190915260018152603160f81b602082015290565b4690565b600083838362000304620002f1565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b600054600160a01b900460ff1615620003b9576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc054616002548260405162000451929190620008f8565b60405180910390a1600255565b7fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a936004548260405162000493929190620008f8565b60405180910390a1600455565b60008111620004cc5760405162461bcd60e51b8152600401620004c390620008c1565b60405180910390fd5b7f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e88286005548260405162000501929190620008f8565b60405180910390a1600555565b7f2056b1a79eedb94135a24bdb0827c0ac4823d13d69f5cf7923ee5751c53ff6456006548260405162000543929190620008f8565b60405180910390a1600655565b60008111620005735760405162461bcd60e51b8152600401620004c3906200088a565b7fdcd7d6f89a192742519ec6798e6340b4e43748282ac27856e823a2579b50fe4360075482604051620005a8929190620008f8565b60405180910390a1600755565b7fb0696527788a80f2825d3fd8b9e9c017c6b3d7f5eb5a54eaa86deaa286d10c3860085482604051620005ea929190620008f8565b60405180910390a1600855565b7fa679132e53a14a0f5674480a8def108a2856034a2338cb9a064e7e2f8badf29e600954826040516200062c929190620008f8565b60405180910390a1600955565b7fd0f8dc4a59c4d23c896412e4f16b39936e8fd83972acf00d91af64bd3511e51a600a54826040516200066e929190620008f8565b60405180910390a1600a55565b7f631d262a54e429270a60189077cb4562e4131dc775629e446fd5a0fa684adb15600b5482604051620006b0929190620008f8565b60405180910390a1600b55565b611388811015620006e25760405162461bcd60e51b8152600401620004c39062000853565b7f4d66ba28c0bc0eb2229d86d7f91e743c971140fcda7f8783e1cbaa0fdfe65465600c548260405162000717929190620008f8565b60405180910390a1600c55565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b80516001600160a01b03811681146200076057600080fd5b919050565b600080600080608085870312156200077b578384fd5b84516001600160401b038082111562000792578586fd5b818701915087601f830112620007a6578586fd5b8151602082821115620007b557fe5b80820260405182828201018181108682111715620007cf57fe5b604052838152828101945085830182870184018d1015620007ee578a8bfd5b8a96505b8487101562000812578051865260019690960195948301948301620007f2565b50985062000824905089820162000748565b965050505050620008386040860162000748565b9150620008486060860162000748565b905092959194509250565b6020808252601e908201527f696e76616c6964205f72656c61746976655468726573686f6c64424950530000604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526015908201527f766f74696e6720706572696f6420746f6f206c6f770000000000000000000000604082015260600190565b918252602082015260400190565b60805160a05160c05160e05161010051610120516101405160601c614310620009676000398061164b5280612c7752508061113a52806120145250806128435250806128855250806128645250806127ea52508061281a52506143106000f3fe6080604052600436106102c95760003560e01c80639d6a890f11610175578063dd3fa0f9116100dc578063ece40cc111610095578063f5a983831161006f578063f5a983831461082b578063f8ce560a14610840578063f911786214610860578063f937d6ad14610875576102c9565b8063ece40cc1146107e1578063f17c9d7614610801578063f2f3a74c14610816576102c9565b8063dd3fa0f914610742578063deaaa7cc14610757578063e17f212e1461076c578063e4917d9f14610781578063ea0217cf146107a1578063eb9019d4146107c1576102c9565b8063b58131b01161012e578063b58131b014610675578063ba1b45861461068a578063bc903cb8146106ba578063bd590d7e146106ed578063d11d0d581461070d578063d99e4b7614610722576102c9565b80639d6a890f146105c05780639e224220146105e0578063a8f8a668146105f5578063aa98df3914610615578063b00c0b7614610635578063b4df57fe14610655576102c9565b80635ff27079116102345780636df5f8ca116101ed5780637b3c71d3116101c75780637b3c71d3146105565780637d5e81e2146105765780638b257989146105965780639a8a0592146105ab576102c9565b80636df5f8ca146104e857806370b0f6601461050857806374e6310e14610528576102c9565b80635ff270791461043e57806360e775321461045e57806361bbfcad1461047e57806362354e031461049e57806367fc4029146104b35780636a714a9f146104d3576102c9565b80633bccf4fd116102865780633bccf4fd1461037a5780633e4f49e61461039a57806343859632146103c75780635267a15d146103f457806356781388146104095780635aa6e67514610429576102c9565b806302a251a3146102ce578063047fc9aa146102f957806311a7aaaa1461031b57806312d0e9fe146103305780632656227d146103525780633932abb114610365575b600080fd5b3480156102da57600080fd5b506102e361088a565b6040516102f09190613c4b565b60405180910390f35b34801561030557600080fd5b5061030e610891565b6040516102f09190613bd6565b34801561032757600080fd5b5061030e6108a0565b34801561033c57600080fd5b5061035061034b366004613970565b6108af565b005b6102e36103603660046136b9565b6108fa565b34801561037157600080fd5b506102e3610911565b34801561038657600080fd5b506102e3610395366004613a7c565b610917565b3480156103a657600080fd5b506103ba6103b5366004613970565b6109dd565b6040516102f09190613c6d565b3480156103d357600080fd5b506103e76103e23660046139a0565b6109fe565b6040516102f09190613c40565b34801561040057600080fd5b5061030e610a2e565b34801561041557600080fd5b506102e36104243660046139cf565b610a53565b34801561043557600080fd5b5061030e610a77565b34801561044a57600080fd5b506103506104593660046138a4565b610b0c565b34801561046a57600080fd5b50610350610479366004613970565b610e61565b34801561048a57600080fd5b50610350610499366004613970565b610e99565b3480156104aa57600080fd5b5061030e610ed1565b3480156104bf57600080fd5b506103506104ce3660046138a4565b610edc565b3480156104df57600080fd5b506102e3610fc4565b3480156104f457600080fd5b50610350610503366004613970565b610fca565b34801561051457600080fd5b50610350610523366004613970565b611002565b34801561053457600080fd5b506105486105433660046138a4565b61103a565b6040516102f092919061417e565b34801561056257600080fd5b506102e36105713660046139fa565b6110e0565b34801561058257600080fd5b506102e3610591366004613745565b611124565b3480156105a257600080fd5b506102e3611132565b3480156105b757600080fd5b506102e3611138565b3480156105cc57600080fd5b506103506105db366004613672565b61115c565b3480156105ec57600080fd5b506102e3611215565b34801561060157600080fd5b506102e36106103660046136b9565b61121b565b34801561062157600080fd5b506102e36106303660046138e8565b611229565b34801561064157600080fd5b506103506106503660046137ed565b611270565b34801561066157600080fd5b50610350610670366004613970565b61131b565b34801561068157600080fd5b506102e3611353565b34801561069657600080fd5b506106aa6106a5366004613970565b611359565b6040516102f094939291906141a5565b3480156106c657600080fd5b506106da6106d5366004613970565b61138a565b6040516102f09796959493929190613c03565b3480156106f957600080fd5b506102e36107083660046138e8565b6113d9565b34801561071957600080fd5b506102e3611428565b34801561072e57600080fd5b5061035061073d366004613970565b61142e565b34801561074e57600080fd5b506102e3611466565b34801561076357600080fd5b506102e361146c565b34801561077857600080fd5b506103e7611490565b34801561078d57600080fd5b5061035061079c366004613970565b6114a0565b3480156107ad57600080fd5b506103506107bc366004613970565b6114d8565b3480156107cd57600080fd5b506102e36107dc36600461368e565b611510565b3480156107ed57600080fd5b506103506107fc366004613970565b61151c565b34801561080d57600080fd5b5061030e611554565b34801561082257600080fd5b506102e3611563565b34801561083757600080fd5b50610350611569565b34801561084c57600080fd5b506102e361085b366004613970565b611623565b34801561086c57600080fd5b506102e3611643565b34801561088157600080fd5b5061030e611649565b6005545b90565b6012546001600160a01b031681565b6011546001600160a01b031681565b600054600160b01b900460ff16806108d15750600054600160a81b900460ff16155b156108ec576108de61166d565b6108e7816116a4565b6108f7565b6108f76000366116e4565b50565b600061090885858585611867565b95945050505050565b60045490565b6000806109756109707f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f898960405160200161095593929190613c54565b60405160208183030381529060405280519060200120611970565b6119bc565b9050600061098582878787611a0d565b90506001600160a01b0381166109b65760405162461bcd60e51b81526004016109ad90613e6f565b60405180910390fd5b6109d188828960405180602001604052806000815250611b82565b98975050505050505050565b6000818152600f602052604081206109f6908390611c33565b90505b919050565b60008281526010602090815260408083206001600160a01b038516845260030190915290205460ff165b92915050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6000610a7083338460405180602001604052806000815250611b82565b9392505050565b60008054600160a81b900460ff16610a9a576000546001600160a01b0316610b07565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015610ada57600080fd5b505afa158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b158015610b5057600080fd5b505afa158015610b64573d6000803e3d6000fd5b505050506040513d6020811015610b7a57600080fd5b5051610bbd576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054610c29576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610c7f576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d195780601f10610cee57610100808354040283529160200191610d19565b820191906000526020600020905b815481529060010190602001808311610cfc57829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250610d4d91508301826133d2565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310610d955780518252601f199092019160209182019101610d76565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610df7576040519150601f19603f3d011682016040523d82523d6000602084013e610dfc565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610e5b81611cf5565b50505050565b600054600160b01b900460ff1680610e835750600054600160a81b900460ff16155b156108ec57610e9061166d565b6108e781611d12565b600054600160b01b900460ff1680610ebb5750600054600160a81b900460ff16155b156108ec57610ec861166d565b6108e781611d52565b60076001609c1b0181565b610ee4611db4565b6001600160e01b03198116600090815260016020526040902054610f4f576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190610fbf908301826133d2565b505050565b60095490565b600054600160b01b900460ff1680610fec5750600054600160a81b900460ff16155b156108ec57610ff961166d565b6108e781611e13565b600054600160b01b900460ff16806110245750600054600160a81b900460ff16155b156108ec5761103161166d565b6108e781611e53565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156110d65780601f106110ab576101008083540402835291602001916110d6565b820191906000526020600020905b8154815290600101906020018083116110b957829003601f168201915b5050505050905082565b600061090885338686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b8292505050565b600061090885858585611e93565b60065490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160a01b900460ff16156111b2576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600c5490565b600061090885858585612010565b604080516000808252602082018181528284018281526060840190945290926109f692919084611269565b60608152602001906001900390816112545790505b5085611e93565b611278610a2e565b6001600160a01b0316336001600160a01b0316146112d4576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61130d61130883836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b81525061206e565b612192565b61131782826121b6565b5050565b600054600160b01b900460ff168061133d5750600054600160a81b900460ff16155b156108ec5761134a61166d565b6108e78161229c565b60025490565b6000908152601060209081526040808320600f90925290912060090154600282015460018301549254919390929190565b6000908152600f602052604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b0390951696939592949193909291610100900460ff1690565b604080516000808252602082018181528284018281526060840190945290926109f692919084611419565b60608152602001906001900390816114045790505b50611423866122dc565b611867565b60075490565b600054600160b01b900460ff16806114505750600054600160a81b900460ff16155b156108ec5761145d61166d565b6108e7816122e7565b600a5490565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600054600160a81b900460ff1681565b600054600160b01b900460ff16806114c25750600054600160a81b900460ff16155b156108ec576114cf61166d565b6108e781612347565b600054600160b01b900460ff16806114fa5750600054600160a81b900460ff16155b156108ec5761150761166d565b6108e781612387565b6000610a7083836123e7565b600054600160b01b900460ff168061153e5750600054600160a81b900460ff16155b156108ec5761154b61166d565b6108e78161246a565b600d546001600160a01b031681565b600b5490565b611571611db4565b600054600160a81b900460ff16156115d0576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60006109f6611631836124aa565b61271061163c611563565b91906125a2565b60085490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160b01b900460ff161561169a5733301461168857fe5b6000805460ff60b01b191690556116a2565b6116a2611db4565b565b7fa679132e53a14a0f5674480a8def108a2856034a2338cb9a064e7e2f8badf29e600954826040516116d7929190614197565b60405180910390a1600955565b6116ec611db4565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561173457600080fd5b505afa158015611748573d6000803e3d6000fd5b505050506040513d602081101561175e57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600160208181526040909220845181558483015180519194506117e293928501920190613416565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600061187585858585612010565b6000818152600f60205260409020600681015491925090610100900460ff16156118b15760405162461bcd60e51b81526004016109ad90614040565b80546001600160a01b031633146118da5760405162461bcd60e51b81526004016109ad90613ddb565b60006118e68383611c33565b905060048160068111156118f657fe5b146119135760405162461bcd60e51b81526004016109ad90614009565b60068201805461ff00191661010017905561192f8787876126ae565b7f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8360405161195e9190613c4b565b60405180910390a15050949350505050565b600061197a6127e6565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611a6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806142766022913960400191505060405180910390fd5b8360ff16601b1480611a8357508360ff16601c145b611abe5760405162461bcd60e51b81526004018080602001828103825260228152602001806142986022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611b1a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610908576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600f602052604081206001611b9c8783611c33565b6006811115611ba757fe5b14611bc45760405162461bcd60e51b81526004016109ad90613f7a565b6000611bd48683600101546123e7565b9050611be2878787846128b0565b856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda488878488604051611c2194939291906141c0565b60405180910390a29695505050505050565b6006810154600090610100900460ff1615611c5057506006610a28565b6002820154611c715760405162461bcd60e51b81526004016109ad90613e9f565b4282600201541115611c8557506000610a28565b4282600301541115611c9957506001610a28565b611ca38383612983565b15611cec57600682015460ff16611cbc57506004610a28565b4282600401541115611cd057506003610a28565b4282600501541115611ce457506004610a28565b506005610a28565b50600292915050565b3d604051818101604052816000823e8215611d0e578181f35b8181fd5b7fb0696527788a80f2825d3fd8b9e9c017c6b3d7f5eb5a54eaa86deaa286d10c3860085482604051611d45929190614197565b60405180910390a1600855565b611388811015611d745760405162461bcd60e51b81526004016109ad90613ce8565b7f4d66ba28c0bc0eb2229d86d7f91e743c971140fcda7f8783e1cbaa0fdfe65465600c5482604051611da7929190614197565b60405180910390a1600c55565b611dbc610a77565b6001600160a01b0316336001600160a01b0316146116a2576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b7f631d262a54e429270a60189077cb4562e4131dc775629e446fd5a0fa684adb15600b5482604051611e46929190614197565b60405180910390a1600b55565b7fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a9360045482604051611e86929190614197565b60405180910390a1600455565b6000806000611ea06129f8565b915091506000611eaf836124aa565b9050611f3e611ebc611466565b60125460405163d9330e6360e01b8152612710916001600160a01b03169063d9330e6390611eee908990600401613c4b565b60206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c9190613988565b811015611f5d5760405162461bcd60e51b81526004016109ad90613c81565b611f673384612d61565b611f835760405162461bcd60e51b81526004016109ad90613d56565b600080611f97338b8b8b8b8a8a308b612d6d565b915091507ff2d67c3691b9395ea4ec30c23df6c26b69de83978dc869dc454316649b3b397682338c8c8c866002015487600301548e8960010154611fd9611466565b8b600701548c60080154604051611ffb9c9b9a99989796959493929190614077565b60405180910390a15098975050505050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000308686868660405160200161204d9695949392919061411a565b60408051601f19818403018152919052805160209091012095945050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156120b257818101518382015260200161209a565b50505050905090810190601f1680156120df5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b86518110156121475786818151811061211557fe5b602002602001015183141561213f5785818151811061213057fe5b60200260200101519150612147565b600101612100565b506001600160a01b038116610908576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b6121e482826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b81525061206e565b601160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612233828260405180604001604052806006815260200165537570706c7960d01b81525061206e565b601260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600061229183836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b81525061206e565b9050610fbf816131f0565b7fd0f8dc4a59c4d23c896412e4f16b39936e8fd83972acf00d91af64bd3511e51a600a54826040516122cf929190614197565b60405180910390a1600a55565b805160209091012090565b600081116123075760405162461bcd60e51b81526004016109ad90613ecc565b7fdcd7d6f89a192742519ec6798e6340b4e43748282ac27856e823a2579b50fe436007548260405161233a929190614197565b60405180910390a1600755565b7f2056b1a79eedb94135a24bdb0827c0ac4823d13d69f5cf7923ee5751c53ff6456006548260405161237a929190614197565b60405180910390a1600655565b600081116123a75760405162461bcd60e51b81526004016109ad90613f4b565b7f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828600554826040516123da929190614197565b60405180910390a1600555565b600d54604051631257fcdb60e31b81526000916001600160a01b0316906392bfe6d89061241a9086908690600401613bea565b60206040518083038186803b15801561243257600080fd5b505afa158015612446573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a709190613988565b7fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc054616002548260405161249d929190614197565b60405180910390a1600255565b600d5460408051636537188360e01b815290516000926001600160a01b0316916365371883916004808301926020929190829003018186803b1580156124ef57600080fd5b505afa158015612503573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252791906138cc565b6001600160a01b0316633e5aa26a836040518263ffffffff1660e01b81526004016125529190613c4b565b60206040518083038186803b15801561256a57600080fd5b505afa15801561257e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f69190613988565b60008082116125eb576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836125f857506000610a70565b8383028385828161260557fe5b04141561261e5782818161261557fe5b04915050610a70565b600083868161262957fe5b049050600084878161263757fe5b069050600085878161264557fe5b049050600086888161265357fe5b0690506126a161266d886126678685613212565b9061326b565b61269b61267a8686613212565b61269b6126878987613212565b61269b8d6126958c8b613212565b90613212565b906132d2565b9998505050505050505050565b6000805b83518110156126e0578381815181106126c757fe5b60200260200101518201915080806001019150506126b2565b508034146127005760405162461bcd60e51b81526004016109ad90613f03565b60005b84518110156127df5760008086838151811061271b57fe5b60200260200101516001600160a01b031686848151811061273857fe5b602002602001015186858151811061274c57fe5b60200260200101516040516127619190613bba565b60006040518083038185875af1925050503d806000811461279e576040519150601f19603f3d011682016040523d82523d6000602084013e6127a3565b606091505b5091509150816127d5578051156127bd5780518082602001fd5b60405162461bcd60e51b81526004016109ad90613da4565b5050600101612703565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000061281161332c565b141561283e57507f000000000000000000000000000000000000000000000000000000000000000061088e565b6128a97f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613330565b905061088e565b60008481526010602090815260408083206001600160a01b0387168452600381019092529091205460ff16156128f85760405162461bcd60e51b81526004016109ad90613fde565b6001600160a01b03841660009081526003820160205260408120805460ff1916600117905560ff168360ff16141561293957600181018054830190556127df565b60ff83166001141561295457600281018054830190556127df565b60ff83166002141561296b578054820181556127df565b60405162461bcd60e51b81526004016109ad90613fa7565b6000828152601060205260408120600983015460078401546129a7916127106125a2565b816002015410156129bc576000915050610a28565b6001810154600282015460088501546129da929091016127106125a2565b8160020154116129ee576000915050610a28565b5060019392505050565b6000806000601160009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015612a4b57600080fd5b505afa158015612a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a839190613988565b60115460405163e5399da360e01b81529192506000916001600160a01b039091169063e5399da390612ab9908590600401613c4b565b60606040518083038186803b158015612ad157600080fd5b505afa158015612ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b09919061391b565b9050436000612b16610fc4565b90506000600d60009054906101000a90046001600160a01b03166001600160a01b031663a72ec4b66040518163ffffffff1660e01b815260040160206040518083038186803b158015612b6857600080fd5b505afa158015612b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba09190613988565b90505b8415612c655760115460405163e5399da360e01b81526000916001600160a01b03169063e5399da390612bde906000198a0190600401613c4b565b60606040518083038186803b158015612bf657600080fd5b505afa158015612c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2e919061391b565b604081015190915042038381101580612c4a5750828260200151105b15612c56575050612c65565b50600019909501949350612ba3565b600084602001519050600042905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612cce57600080fd5b505afa158015612ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d069190613988565b905060008282604051602001612d1d929190614197565b6040516020818303038152906040528051906020012060001c905060008488038281612d4557fe5b6040909a015199069097039a5096985050505050505050509091565b6000610a708383613392565b60008088518a5114612d915760405162461bcd60e51b81526004016109ad90613cb1565b87518a5114612db25760405162461bcd60e51b81526004016109ad90613cb1565b6000612dc88b8b8b612dc38c6122dc565b612010565b6000818152600f6020526040902060028101549192509015612dfc5760405162461bcd60e51b81526004016109ad90613d1f565b80546001600160a01b0319166001600160a01b038e81169190911782556001820189905560408051633932abb160e01b8152905191881691633932abb191600480820192602092909190829003018186803b158015612e5a57600080fd5b505afa158015612e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e929190613988565b42018160020181905550856001600160a01b03166302a251a36040518163ffffffff1660e01b815260040160206040518083038186803b158015612ed557600080fd5b505afa158015612ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0d9190613988565b8160020154018160030181905550856001600160a01b031663f91178626040518163ffffffff1660e01b815260040160206040518083038186803b158015612f5457600080fd5b505afa158015612f68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f8c9190613988565b603c02603c026018028782600301540310612fb95760405162461bcd60e51b81526004016109ad90613e28565b8b51156130e85760068101805460ff1916600117905560408051638b25798960e01b815290516001600160a01b03881691638b257989916004808301926020929190829003018186803b15801561300f57600080fd5b505afa158015613023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130479190613988565b60038201540160048201819055600e54111561306657600e5460048201555b856001600160a01b031663d11d0d586040518163ffffffff1660e01b815260040160206040518083038186803b15801561309f57600080fd5b505afa1580156130b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d79190613988565b60048201540160058201819055600e555b856001600160a01b031663f2f3a74c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561312157600080fd5b505afa158015613135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131599190613988565b8160070181905550856001600160a01b0316639e2242206040518163ffffffff1660e01b815260040160206040518083038186803b15801561319a57600080fd5b505afa1580156131ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d29190613988565b600882015560098101949094559b929a509198505050505050505050565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b60008261322157506000610a28565b8282028284828161322e57fe5b0414610a705760405162461bcd60e51b81526004018080602001828103825260218152602001806142ba6021913960400191505060405180910390fd5b60008082116132c1576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816132ca57fe5b049392505050565b600082820183811015610a70576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b4690565b600083838361333d61332c565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008061339d611353565b90508015806133ca57506133bd6133b3846124aa565b82906127106125a2565b6133c785856123e7565b10155b949350505050565b50805460018160011615610100020316600290046000825580601f106133f857506108f7565b601f0160209004906000526020600020908101906108f791906134a2565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261344c5760008555613492565b82601f1061346557805160ff1916838001178555613492565b82800160010185558215613492579182015b82811115613492578251825591602001919060010190613477565b5061349e9291506134a2565b5090565b5b8082111561349e57600081556001016134a3565b600067ffffffffffffffff8311156134cb57fe5b6134de601f8401601f19166020016141f2565b90508281528383830111156134f257600080fd5b828260208301376000602084830101529392505050565b600082601f830112613519578081fd5b8135602061352e61352983614216565b6141f2565b828152818101908583018385028701840188101561354a578586fd5b855b8581101561357157813561355f81614260565b8452928401929084019060010161354c565b5090979650505050505050565b600082601f83011261358e578081fd5b8135602061359e61352983614216565b82815281810190858301855b85811015613571578135880189603f8201126135c4578788fd5b6135d58a87830135604084016134b7565b85525092840192908401906001016135aa565b600082601f8301126135f8578081fd5b8135602061360861352983614216565b8281528181019085830183850287018401881015613624578586fd5b855b8581101561357157813584529284019290840190600101613626565b600082601f830112613652578081fd5b610a70838335602085016134b7565b803560ff811681146109f957600080fd5b600060208284031215613683578081fd5b8135610a7081614260565b600080604083850312156136a0578081fd5b82356136ab81614260565b946020939093013593505050565b600080600080608085870312156136ce578182fd5b843567ffffffffffffffff808211156136e5578384fd5b6136f188838901613509565b95506020870135915080821115613706578384fd5b613712888389016135e8565b94506040870135915080821115613727578384fd5b506137348782880161357e565b949793965093946060013593505050565b6000806000806080858703121561375a578182fd5b843567ffffffffffffffff80821115613771578384fd5b61377d88838901613509565b95506020870135915080821115613792578384fd5b61379e888389016135e8565b945060408701359150808211156137b3578384fd5b6137bf8883890161357e565b935060608701359150808211156137d4578283fd5b506137e187828801613642565b91505092959194509250565b600080604083850312156137ff578182fd5b823567ffffffffffffffff80821115613816578384fd5b818501915085601f830112613829578384fd5b8135602061383961352983614216565b82815281810190858301838502870184018b1015613855578889fd5b8896505b84871015613877578035835260019690960195918301918301613859565b509650508601359250508082111561388d578283fd5b5061389a85828601613509565b9150509250929050565b6000602082840312156138b5578081fd5b81356001600160e01b031981168114610a70578182fd5b6000602082840312156138dd578081fd5b8151610a7081614260565b6000602082840312156138f9578081fd5b813567ffffffffffffffff81111561390f578182fd5b6133ca84828501613642565b60006060828403121561392c578081fd5b6040516060810181811067ffffffffffffffff8211171561394957fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613981578081fd5b5035919050565b600060208284031215613999578081fd5b5051919050565b600080604083850312156139b2578182fd5b8235915060208301356139c481614260565b809150509250929050565b600080604083850312156139e1578182fd5b823591506139f160208401613661565b90509250929050565b60008060008060608587031215613a0f578182fd5b84359350613a1f60208601613661565b9250604085013567ffffffffffffffff80821115613a3b578384fd5b818701915087601f830112613a4e578384fd5b813581811115613a5c578485fd5b886020828501011115613a6d578485fd5b95989497505060200194505050565b600080600080600060a08688031215613a93578283fd5b85359450613aa360208701613661565b9350613ab160408701613661565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b83811015613b015781516001600160a01b031687529582019590820190600101613adc565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015613b52578284038952613b40848351613b8e565b98850198935090840190600101613b28565b5091979650505050505050565b6000815180845260208085019450808401835b83811015613b0157815187529582019590820190600101613b72565b60008151808452613ba6816020860160208601614234565b601f01601f19169290920160200192915050565b60008251613bcc818460208701614234565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03979097168752602087019590955260408601939093526060850191909152608084015260a0830152151560c082015260e00190565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b6020810160078310613c7b57fe5b91905290565b6020808252601690820152757772617070656420737570706c7920746f6f206c6f7760501b604082015260600190565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252601e908201527f696e76616c6964205f72656c61746976655468726573686f6c64424950530000604082015260600190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8c81526001600160a01b038c166020820152610180604082018190526000906140a28382018e613ac9565b905082810360608401526140b6818d613b5f565b905082810360808401526140ca818c613b0c565b90508960a08401528860c084015282810360e08401526140ea8189613b8e565b915050856101008301528461012083015283610140830152826101608301529d9c50505050505050505050505050565b8681526001600160a01b038616602082015260c06040820181905260009061414490830187613ac9565b82810360608401526141568187613b5f565b9050828103608084015261416a8186613b0c565b9150508260a0830152979650505050505050565b6000838252604060208301526133ca6040830184613b8e565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b600085825260ff85166020830152836040830152608060608301526141e86080830184613b8e565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561420e57fe5b604052919050565b600067ffffffffffffffff82111561422a57fe5b5060209081020190565b60005b8381101561424f578181015183820152602001614237565b83811115610e5b5750506000910152565b6001600160a01b03811681146108f757600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122084f894b234454745e28b0a403651d3bf252a05b20dbd0158f839169413e41a6764736f6c63430007060033",
  "deployedBytecode": "0x6080604052600436106102c95760003560e01c80639d6a890f11610175578063dd3fa0f9116100dc578063ece40cc111610095578063f5a983831161006f578063f5a983831461082b578063f8ce560a14610840578063f911786214610860578063f937d6ad14610875576102c9565b8063ece40cc1146107e1578063f17c9d7614610801578063f2f3a74c14610816576102c9565b8063dd3fa0f914610742578063deaaa7cc14610757578063e17f212e1461076c578063e4917d9f14610781578063ea0217cf146107a1578063eb9019d4146107c1576102c9565b8063b58131b01161012e578063b58131b014610675578063ba1b45861461068a578063bc903cb8146106ba578063bd590d7e146106ed578063d11d0d581461070d578063d99e4b7614610722576102c9565b80639d6a890f146105c05780639e224220146105e0578063a8f8a668146105f5578063aa98df3914610615578063b00c0b7614610635578063b4df57fe14610655576102c9565b80635ff27079116102345780636df5f8ca116101ed5780637b3c71d3116101c75780637b3c71d3146105565780637d5e81e2146105765780638b257989146105965780639a8a0592146105ab576102c9565b80636df5f8ca146104e857806370b0f6601461050857806374e6310e14610528576102c9565b80635ff270791461043e57806360e775321461045e57806361bbfcad1461047e57806362354e031461049e57806367fc4029146104b35780636a714a9f146104d3576102c9565b80633bccf4fd116102865780633bccf4fd1461037a5780633e4f49e61461039a57806343859632146103c75780635267a15d146103f457806356781388146104095780635aa6e67514610429576102c9565b806302a251a3146102ce578063047fc9aa146102f957806311a7aaaa1461031b57806312d0e9fe146103305780632656227d146103525780633932abb114610365575b600080fd5b3480156102da57600080fd5b506102e361088a565b6040516102f09190613c4b565b60405180910390f35b34801561030557600080fd5b5061030e610891565b6040516102f09190613bd6565b34801561032757600080fd5b5061030e6108a0565b34801561033c57600080fd5b5061035061034b366004613970565b6108af565b005b6102e36103603660046136b9565b6108fa565b34801561037157600080fd5b506102e3610911565b34801561038657600080fd5b506102e3610395366004613a7c565b610917565b3480156103a657600080fd5b506103ba6103b5366004613970565b6109dd565b6040516102f09190613c6d565b3480156103d357600080fd5b506103e76103e23660046139a0565b6109fe565b6040516102f09190613c40565b34801561040057600080fd5b5061030e610a2e565b34801561041557600080fd5b506102e36104243660046139cf565b610a53565b34801561043557600080fd5b5061030e610a77565b34801561044a57600080fd5b506103506104593660046138a4565b610b0c565b34801561046a57600080fd5b50610350610479366004613970565b610e61565b34801561048a57600080fd5b50610350610499366004613970565b610e99565b3480156104aa57600080fd5b5061030e610ed1565b3480156104bf57600080fd5b506103506104ce3660046138a4565b610edc565b3480156104df57600080fd5b506102e3610fc4565b3480156104f457600080fd5b50610350610503366004613970565b610fca565b34801561051457600080fd5b50610350610523366004613970565b611002565b34801561053457600080fd5b506105486105433660046138a4565b61103a565b6040516102f092919061417e565b34801561056257600080fd5b506102e36105713660046139fa565b6110e0565b34801561058257600080fd5b506102e3610591366004613745565b611124565b3480156105a257600080fd5b506102e3611132565b3480156105b757600080fd5b506102e3611138565b3480156105cc57600080fd5b506103506105db366004613672565b61115c565b3480156105ec57600080fd5b506102e3611215565b34801561060157600080fd5b506102e36106103660046136b9565b61121b565b34801561062157600080fd5b506102e36106303660046138e8565b611229565b34801561064157600080fd5b506103506106503660046137ed565b611270565b34801561066157600080fd5b50610350610670366004613970565b61131b565b34801561068157600080fd5b506102e3611353565b34801561069657600080fd5b506106aa6106a5366004613970565b611359565b6040516102f094939291906141a5565b3480156106c657600080fd5b506106da6106d5366004613970565b61138a565b6040516102f09796959493929190613c03565b3480156106f957600080fd5b506102e36107083660046138e8565b6113d9565b34801561071957600080fd5b506102e3611428565b34801561072e57600080fd5b5061035061073d366004613970565b61142e565b34801561074e57600080fd5b506102e3611466565b34801561076357600080fd5b506102e361146c565b34801561077857600080fd5b506103e7611490565b34801561078d57600080fd5b5061035061079c366004613970565b6114a0565b3480156107ad57600080fd5b506103506107bc366004613970565b6114d8565b3480156107cd57600080fd5b506102e36107dc36600461368e565b611510565b3480156107ed57600080fd5b506103506107fc366004613970565b61151c565b34801561080d57600080fd5b5061030e611554565b34801561082257600080fd5b506102e3611563565b34801561083757600080fd5b50610350611569565b34801561084c57600080fd5b506102e361085b366004613970565b611623565b34801561086c57600080fd5b506102e3611643565b34801561088157600080fd5b5061030e611649565b6005545b90565b6012546001600160a01b031681565b6011546001600160a01b031681565b600054600160b01b900460ff16806108d15750600054600160a81b900460ff16155b156108ec576108de61166d565b6108e7816116a4565b6108f7565b6108f76000366116e4565b50565b600061090885858585611867565b95945050505050565b60045490565b6000806109756109707f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f898960405160200161095593929190613c54565b60405160208183030381529060405280519060200120611970565b6119bc565b9050600061098582878787611a0d565b90506001600160a01b0381166109b65760405162461bcd60e51b81526004016109ad90613e6f565b60405180910390fd5b6109d188828960405180602001604052806000815250611b82565b98975050505050505050565b6000818152600f602052604081206109f6908390611c33565b90505b919050565b60008281526010602090815260408083206001600160a01b038516845260030190915290205460ff165b92915050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6000610a7083338460405180602001604052806000815250611b82565b9392505050565b60008054600160a81b900460ff16610a9a576000546001600160a01b0316610b07565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015610ada57600080fd5b505afa158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b158015610b5057600080fd5b505afa158015610b64573d6000803e3d6000fd5b505050506040513d6020811015610b7a57600080fd5b5051610bbd576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054610c29576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610c7f576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d195780601f10610cee57610100808354040283529160200191610d19565b820191906000526020600020905b815481529060010190602001808311610cfc57829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250610d4d91508301826133d2565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310610d955780518252601f199092019160209182019101610d76565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610df7576040519150601f19603f3d011682016040523d82523d6000602084013e610dfc565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610e5b81611cf5565b50505050565b600054600160b01b900460ff1680610e835750600054600160a81b900460ff16155b156108ec57610e9061166d565b6108e781611d12565b600054600160b01b900460ff1680610ebb5750600054600160a81b900460ff16155b156108ec57610ec861166d565b6108e781611d52565b60076001609c1b0181565b610ee4611db4565b6001600160e01b03198116600090815260016020526040902054610f4f576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190610fbf908301826133d2565b505050565b60095490565b600054600160b01b900460ff1680610fec5750600054600160a81b900460ff16155b156108ec57610ff961166d565b6108e781611e13565b600054600160b01b900460ff16806110245750600054600160a81b900460ff16155b156108ec5761103161166d565b6108e781611e53565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156110d65780601f106110ab576101008083540402835291602001916110d6565b820191906000526020600020905b8154815290600101906020018083116110b957829003601f168201915b5050505050905082565b600061090885338686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b8292505050565b600061090885858585611e93565b60065490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160a01b900460ff16156111b2576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600c5490565b600061090885858585612010565b604080516000808252602082018181528284018281526060840190945290926109f692919084611269565b60608152602001906001900390816112545790505b5085611e93565b611278610a2e565b6001600160a01b0316336001600160a01b0316146112d4576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61130d61130883836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b81525061206e565b612192565b61131782826121b6565b5050565b600054600160b01b900460ff168061133d5750600054600160a81b900460ff16155b156108ec5761134a61166d565b6108e78161229c565b60025490565b6000908152601060209081526040808320600f90925290912060090154600282015460018301549254919390929190565b6000908152600f602052604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b0390951696939592949193909291610100900460ff1690565b604080516000808252602082018181528284018281526060840190945290926109f692919084611419565b60608152602001906001900390816114045790505b50611423866122dc565b611867565b60075490565b600054600160b01b900460ff16806114505750600054600160a81b900460ff16155b156108ec5761145d61166d565b6108e7816122e7565b600a5490565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600054600160a81b900460ff1681565b600054600160b01b900460ff16806114c25750600054600160a81b900460ff16155b156108ec576114cf61166d565b6108e781612347565b600054600160b01b900460ff16806114fa5750600054600160a81b900460ff16155b156108ec5761150761166d565b6108e781612387565b6000610a7083836123e7565b600054600160b01b900460ff168061153e5750600054600160a81b900460ff16155b156108ec5761154b61166d565b6108e78161246a565b600d546001600160a01b031681565b600b5490565b611571611db4565b600054600160a81b900460ff16156115d0576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60006109f6611631836124aa565b61271061163c611563565b91906125a2565b60085490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160b01b900460ff161561169a5733301461168857fe5b6000805460ff60b01b191690556116a2565b6116a2611db4565b565b7fa679132e53a14a0f5674480a8def108a2856034a2338cb9a064e7e2f8badf29e600954826040516116d7929190614197565b60405180910390a1600955565b6116ec611db4565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561173457600080fd5b505afa158015611748573d6000803e3d6000fd5b505050506040513d602081101561175e57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600160208181526040909220845181558483015180519194506117e293928501920190613416565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600061187585858585612010565b6000818152600f60205260409020600681015491925090610100900460ff16156118b15760405162461bcd60e51b81526004016109ad90614040565b80546001600160a01b031633146118da5760405162461bcd60e51b81526004016109ad90613ddb565b60006118e68383611c33565b905060048160068111156118f657fe5b146119135760405162461bcd60e51b81526004016109ad90614009565b60068201805461ff00191661010017905561192f8787876126ae565b7f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8360405161195e9190613c4b565b60405180910390a15050949350505050565b600061197a6127e6565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611a6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806142766022913960400191505060405180910390fd5b8360ff16601b1480611a8357508360ff16601c145b611abe5760405162461bcd60e51b81526004018080602001828103825260228152602001806142986022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611b1a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610908576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600f602052604081206001611b9c8783611c33565b6006811115611ba757fe5b14611bc45760405162461bcd60e51b81526004016109ad90613f7a565b6000611bd48683600101546123e7565b9050611be2878787846128b0565b856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda488878488604051611c2194939291906141c0565b60405180910390a29695505050505050565b6006810154600090610100900460ff1615611c5057506006610a28565b6002820154611c715760405162461bcd60e51b81526004016109ad90613e9f565b4282600201541115611c8557506000610a28565b4282600301541115611c9957506001610a28565b611ca38383612983565b15611cec57600682015460ff16611cbc57506004610a28565b4282600401541115611cd057506003610a28565b4282600501541115611ce457506004610a28565b506005610a28565b50600292915050565b3d604051818101604052816000823e8215611d0e578181f35b8181fd5b7fb0696527788a80f2825d3fd8b9e9c017c6b3d7f5eb5a54eaa86deaa286d10c3860085482604051611d45929190614197565b60405180910390a1600855565b611388811015611d745760405162461bcd60e51b81526004016109ad90613ce8565b7f4d66ba28c0bc0eb2229d86d7f91e743c971140fcda7f8783e1cbaa0fdfe65465600c5482604051611da7929190614197565b60405180910390a1600c55565b611dbc610a77565b6001600160a01b0316336001600160a01b0316146116a2576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b7f631d262a54e429270a60189077cb4562e4131dc775629e446fd5a0fa684adb15600b5482604051611e46929190614197565b60405180910390a1600b55565b7fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a9360045482604051611e86929190614197565b60405180910390a1600455565b6000806000611ea06129f8565b915091506000611eaf836124aa565b9050611f3e611ebc611466565b60125460405163d9330e6360e01b8152612710916001600160a01b03169063d9330e6390611eee908990600401613c4b565b60206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c9190613988565b811015611f5d5760405162461bcd60e51b81526004016109ad90613c81565b611f673384612d61565b611f835760405162461bcd60e51b81526004016109ad90613d56565b600080611f97338b8b8b8b8a8a308b612d6d565b915091507ff2d67c3691b9395ea4ec30c23df6c26b69de83978dc869dc454316649b3b397682338c8c8c866002015487600301548e8960010154611fd9611466565b8b600701548c60080154604051611ffb9c9b9a99989796959493929190614077565b60405180910390a15098975050505050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000308686868660405160200161204d9695949392919061411a565b60408051601f19818403018152919052805160209091012095945050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156120b257818101518382015260200161209a565b50505050905090810190601f1680156120df5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b86518110156121475786818151811061211557fe5b602002602001015183141561213f5785818151811061213057fe5b60200260200101519150612147565b600101612100565b506001600160a01b038116610908576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b6121e482826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b81525061206e565b601160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612233828260405180604001604052806006815260200165537570706c7960d01b81525061206e565b601260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600061229183836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b81525061206e565b9050610fbf816131f0565b7fd0f8dc4a59c4d23c896412e4f16b39936e8fd83972acf00d91af64bd3511e51a600a54826040516122cf929190614197565b60405180910390a1600a55565b805160209091012090565b600081116123075760405162461bcd60e51b81526004016109ad90613ecc565b7fdcd7d6f89a192742519ec6798e6340b4e43748282ac27856e823a2579b50fe436007548260405161233a929190614197565b60405180910390a1600755565b7f2056b1a79eedb94135a24bdb0827c0ac4823d13d69f5cf7923ee5751c53ff6456006548260405161237a929190614197565b60405180910390a1600655565b600081116123a75760405162461bcd60e51b81526004016109ad90613f4b565b7f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828600554826040516123da929190614197565b60405180910390a1600555565b600d54604051631257fcdb60e31b81526000916001600160a01b0316906392bfe6d89061241a9086908690600401613bea565b60206040518083038186803b15801561243257600080fd5b505afa158015612446573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a709190613988565b7fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc054616002548260405161249d929190614197565b60405180910390a1600255565b600d5460408051636537188360e01b815290516000926001600160a01b0316916365371883916004808301926020929190829003018186803b1580156124ef57600080fd5b505afa158015612503573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252791906138cc565b6001600160a01b0316633e5aa26a836040518263ffffffff1660e01b81526004016125529190613c4b565b60206040518083038186803b15801561256a57600080fd5b505afa15801561257e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f69190613988565b60008082116125eb576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836125f857506000610a70565b8383028385828161260557fe5b04141561261e5782818161261557fe5b04915050610a70565b600083868161262957fe5b049050600084878161263757fe5b069050600085878161264557fe5b049050600086888161265357fe5b0690506126a161266d886126678685613212565b9061326b565b61269b61267a8686613212565b61269b6126878987613212565b61269b8d6126958c8b613212565b90613212565b906132d2565b9998505050505050505050565b6000805b83518110156126e0578381815181106126c757fe5b60200260200101518201915080806001019150506126b2565b508034146127005760405162461bcd60e51b81526004016109ad90613f03565b60005b84518110156127df5760008086838151811061271b57fe5b60200260200101516001600160a01b031686848151811061273857fe5b602002602001015186858151811061274c57fe5b60200260200101516040516127619190613bba565b60006040518083038185875af1925050503d806000811461279e576040519150601f19603f3d011682016040523d82523d6000602084013e6127a3565b606091505b5091509150816127d5578051156127bd5780518082602001fd5b60405162461bcd60e51b81526004016109ad90613da4565b5050600101612703565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000061281161332c565b141561283e57507f000000000000000000000000000000000000000000000000000000000000000061088e565b6128a97f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613330565b905061088e565b60008481526010602090815260408083206001600160a01b0387168452600381019092529091205460ff16156128f85760405162461bcd60e51b81526004016109ad90613fde565b6001600160a01b03841660009081526003820160205260408120805460ff1916600117905560ff168360ff16141561293957600181018054830190556127df565b60ff83166001141561295457600281018054830190556127df565b60ff83166002141561296b578054820181556127df565b60405162461bcd60e51b81526004016109ad90613fa7565b6000828152601060205260408120600983015460078401546129a7916127106125a2565b816002015410156129bc576000915050610a28565b6001810154600282015460088501546129da929091016127106125a2565b8160020154116129ee576000915050610a28565b5060019392505050565b6000806000601160009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015612a4b57600080fd5b505afa158015612a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a839190613988565b60115460405163e5399da360e01b81529192506000916001600160a01b039091169063e5399da390612ab9908590600401613c4b565b60606040518083038186803b158015612ad157600080fd5b505afa158015612ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b09919061391b565b9050436000612b16610fc4565b90506000600d60009054906101000a90046001600160a01b03166001600160a01b031663a72ec4b66040518163ffffffff1660e01b815260040160206040518083038186803b158015612b6857600080fd5b505afa158015612b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba09190613988565b90505b8415612c655760115460405163e5399da360e01b81526000916001600160a01b03169063e5399da390612bde906000198a0190600401613c4b565b60606040518083038186803b158015612bf657600080fd5b505afa158015612c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2e919061391b565b604081015190915042038381101580612c4a5750828260200151105b15612c56575050612c65565b50600019909501949350612ba3565b600084602001519050600042905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612cce57600080fd5b505afa158015612ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d069190613988565b905060008282604051602001612d1d929190614197565b6040516020818303038152906040528051906020012060001c905060008488038281612d4557fe5b6040909a015199069097039a5096985050505050505050509091565b6000610a708383613392565b60008088518a5114612d915760405162461bcd60e51b81526004016109ad90613cb1565b87518a5114612db25760405162461bcd60e51b81526004016109ad90613cb1565b6000612dc88b8b8b612dc38c6122dc565b612010565b6000818152600f6020526040902060028101549192509015612dfc5760405162461bcd60e51b81526004016109ad90613d1f565b80546001600160a01b0319166001600160a01b038e81169190911782556001820189905560408051633932abb160e01b8152905191881691633932abb191600480820192602092909190829003018186803b158015612e5a57600080fd5b505afa158015612e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e929190613988565b42018160020181905550856001600160a01b03166302a251a36040518163ffffffff1660e01b815260040160206040518083038186803b158015612ed557600080fd5b505afa158015612ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0d9190613988565b8160020154018160030181905550856001600160a01b031663f91178626040518163ffffffff1660e01b815260040160206040518083038186803b158015612f5457600080fd5b505afa158015612f68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f8c9190613988565b603c02603c026018028782600301540310612fb95760405162461bcd60e51b81526004016109ad90613e28565b8b51156130e85760068101805460ff1916600117905560408051638b25798960e01b815290516001600160a01b03881691638b257989916004808301926020929190829003018186803b15801561300f57600080fd5b505afa158015613023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130479190613988565b60038201540160048201819055600e54111561306657600e5460048201555b856001600160a01b031663d11d0d586040518163ffffffff1660e01b815260040160206040518083038186803b15801561309f57600080fd5b505afa1580156130b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d79190613988565b60048201540160058201819055600e555b856001600160a01b031663f2f3a74c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561312157600080fd5b505afa158015613135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131599190613988565b8160070181905550856001600160a01b0316639e2242206040518163ffffffff1660e01b815260040160206040518083038186803b15801561319a57600080fd5b505afa1580156131ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d29190613988565b600882015560098101949094559b929a509198505050505050505050565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b60008261322157506000610a28565b8282028284828161322e57fe5b0414610a705760405162461bcd60e51b81526004018080602001828103825260218152602001806142ba6021913960400191505060405180910390fd5b60008082116132c1576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816132ca57fe5b049392505050565b600082820183811015610a70576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b4690565b600083838361333d61332c565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008061339d611353565b90508015806133ca57506133bd6133b3846124aa565b82906127106125a2565b6133c785856123e7565b10155b949350505050565b50805460018160011615610100020316600290046000825580601f106133f857506108f7565b601f0160209004906000526020600020908101906108f791906134a2565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261344c5760008555613492565b82601f1061346557805160ff1916838001178555613492565b82800160010185558215613492579182015b82811115613492578251825591602001919060010190613477565b5061349e9291506134a2565b5090565b5b8082111561349e57600081556001016134a3565b600067ffffffffffffffff8311156134cb57fe5b6134de601f8401601f19166020016141f2565b90508281528383830111156134f257600080fd5b828260208301376000602084830101529392505050565b600082601f830112613519578081fd5b8135602061352e61352983614216565b6141f2565b828152818101908583018385028701840188101561354a578586fd5b855b8581101561357157813561355f81614260565b8452928401929084019060010161354c565b5090979650505050505050565b600082601f83011261358e578081fd5b8135602061359e61352983614216565b82815281810190858301855b85811015613571578135880189603f8201126135c4578788fd5b6135d58a87830135604084016134b7565b85525092840192908401906001016135aa565b600082601f8301126135f8578081fd5b8135602061360861352983614216565b8281528181019085830183850287018401881015613624578586fd5b855b8581101561357157813584529284019290840190600101613626565b600082601f830112613652578081fd5b610a70838335602085016134b7565b803560ff811681146109f957600080fd5b600060208284031215613683578081fd5b8135610a7081614260565b600080604083850312156136a0578081fd5b82356136ab81614260565b946020939093013593505050565b600080600080608085870312156136ce578182fd5b843567ffffffffffffffff808211156136e5578384fd5b6136f188838901613509565b95506020870135915080821115613706578384fd5b613712888389016135e8565b94506040870135915080821115613727578384fd5b506137348782880161357e565b949793965093946060013593505050565b6000806000806080858703121561375a578182fd5b843567ffffffffffffffff80821115613771578384fd5b61377d88838901613509565b95506020870135915080821115613792578384fd5b61379e888389016135e8565b945060408701359150808211156137b3578384fd5b6137bf8883890161357e565b935060608701359150808211156137d4578283fd5b506137e187828801613642565b91505092959194509250565b600080604083850312156137ff578182fd5b823567ffffffffffffffff80821115613816578384fd5b818501915085601f830112613829578384fd5b8135602061383961352983614216565b82815281810190858301838502870184018b1015613855578889fd5b8896505b84871015613877578035835260019690960195918301918301613859565b509650508601359250508082111561388d578283fd5b5061389a85828601613509565b9150509250929050565b6000602082840312156138b5578081fd5b81356001600160e01b031981168114610a70578182fd5b6000602082840312156138dd578081fd5b8151610a7081614260565b6000602082840312156138f9578081fd5b813567ffffffffffffffff81111561390f578182fd5b6133ca84828501613642565b60006060828403121561392c578081fd5b6040516060810181811067ffffffffffffffff8211171561394957fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613981578081fd5b5035919050565b600060208284031215613999578081fd5b5051919050565b600080604083850312156139b2578182fd5b8235915060208301356139c481614260565b809150509250929050565b600080604083850312156139e1578182fd5b823591506139f160208401613661565b90509250929050565b60008060008060608587031215613a0f578182fd5b84359350613a1f60208601613661565b9250604085013567ffffffffffffffff80821115613a3b578384fd5b818701915087601f830112613a4e578384fd5b813581811115613a5c578485fd5b886020828501011115613a6d578485fd5b95989497505060200194505050565b600080600080600060a08688031215613a93578283fd5b85359450613aa360208701613661565b9350613ab160408701613661565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b83811015613b015781516001600160a01b031687529582019590820190600101613adc565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015613b52578284038952613b40848351613b8e565b98850198935090840190600101613b28565b5091979650505050505050565b6000815180845260208085019450808401835b83811015613b0157815187529582019590820190600101613b72565b60008151808452613ba6816020860160208601614234565b601f01601f19169290920160200192915050565b60008251613bcc818460208701614234565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03979097168752602087019590955260408601939093526060850191909152608084015260a0830152151560c082015260e00190565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b6020810160078310613c7b57fe5b91905290565b6020808252601690820152757772617070656420737570706c7920746f6f206c6f7760501b604082015260600190565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252601e908201527f696e76616c6964205f72656c61746976655468726573686f6c64424950530000604082015260600190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8c81526001600160a01b038c166020820152610180604082018190526000906140a28382018e613ac9565b905082810360608401526140b6818d613b5f565b905082810360808401526140ca818c613b0c565b90508960a08401528860c084015282810360e08401526140ea8189613b8e565b915050856101008301528461012083015283610140830152826101608301529d9c50505050505050505050505050565b8681526001600160a01b038616602082015260c06040820181905260009061414490830187613ac9565b82810360608401526141568187613b5f565b9050828103608084015261416a8186613b0c565b9150508260a0830152979650505050505050565b6000838252604060208301526133ca6040830184613b8e565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b600085825260ff85166020830152836040830152608060608301526141e86080830184613b8e565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561420e57fe5b604052919050565b600067ffffffffffffffff82111561422a57fe5b5060209081020190565b60005b8381101561424f578181015183820152602001614237565b83811115610e5b5750506000910152565b6001600160a01b03811681146108f757600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122084f894b234454745e28b0a403651d3bf252a05b20dbd0158f839169413e41a6764736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
