Overview ERC20
PRICE
n/a

ON-CHAIN MARKET CAP n/a

Total Supply:
0 bHERMES-V

Profile Summary
Blockchain:
Sepolia (11155111)


Decimals:
18
Contract Source Code Verified (Partial Match)
Contract Name:
bHermesVotes

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 1000000 runs

Created At:
Mon, 29 Jan 2024 18:07:36 GMT
EnumerableSet.sol
lib
EnumerableSet.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "BlockError",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "DelegationError",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NewOwnerIsZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NoHandoverRequest",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NonContractError",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotbHermes",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "Unauthorized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "UndelegationVoteError",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "bool",
        "name": "canContractExceedMaxDelegates",
        "type": "bool"
      }
    ],
    "name": "CanContractExceedMaxDelegatesUpdate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "delegator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "fromDelegate",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "toDelegate",
        "type": "address"
      }
    ],
    "name": "DelegateChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "delegate",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "previousBalance",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "newBalance",
        "type": "uint256"
      }
    ],
    "name": "DelegateVotesChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "delegator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "delegate",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "Delegation",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "oldMaxDelegates",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "newMaxDelegates",
        "type": "uint256"
      }
    ],
    "name": "MaxDelegatesUpdate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "pendingOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipHandoverCanceled",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "pendingOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipHandoverRequested",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "delegator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "delegate",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "Undelegation",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "DELEGATION_TYPEHASH",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "DOMAIN_SEPARATOR",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "bHermes",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "canContractExceedMaxDelegates",
    "outputs": [
      {
        "internalType": "bool",
        "name": "canExceedMaxGauges",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "cancelOwnershipHandover",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint32",
        "name": "pos",
        "type": "uint32"
      }
    ],
    "name": "checkpoints",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint32",
            "name": "fromBlock",
            "type": "uint32"
          },
          {
            "internalType": "uint224",
            "name": "votes",
            "type": "uint224"
          }
        ],
        "internalType": "struct IERC20MultiVotes.Checkpoint",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pendingOwner",
        "type": "address"
      }
    ],
    "name": "completeOwnershipHandover",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newDelegatee",
        "type": "address"
      }
    ],
    "name": "delegate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "delegatee",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "nonce",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "expiry",
        "type": "uint256"
      },
      {
        "internalType": "uint8",
        "name": "v",
        "type": "uint8"
      },
      {
        "internalType": "bytes32",
        "name": "r",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "s",
        "type": "bytes32"
      }
    ],
    "name": "delegateBySig",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "delegator",
        "type": "address"
      }
    ],
    "name": "delegateCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "delegator",
        "type": "address"
      }
    ],
    "name": "delegates",
    "outputs": [
      {
        "internalType": "address[]",
        "name": "",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "delegator",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "delegatee",
        "type": "address"
      }
    ],
    "name": "delegatesVotesCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "freeVotes",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "blockNumber",
        "type": "uint256"
      }
    ],
    "name": "getPriorVotes",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "getVotes",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "delegatee",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "incrementDelegation",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxDelegates",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "nonces",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "numCheckpoints",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "result",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pendingOwner",
        "type": "address"
      }
    ],
    "name": "ownershipHandoverExpiresAt",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "result",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "deadline",
        "type": "uint256"
      },
      {
        "internalType": "uint8",
        "name": "v",
        "type": "uint8"
      },
      {
        "internalType": "bytes32",
        "name": "r",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "s",
        "type": "bytes32"
      }
    ],
    "name": "permit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "requestOwnershipHandover",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "canExceedMax",
        "type": "bool"
      }
    ],
    "name": "setContractExceedMaxDelegates",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newMax",
        "type": "uint256"
      }
    ],
    "name": "setMaxDelegates",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "delegatee",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "undelegate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "user",
        "type": "address"
      }
    ],
    "name": "userDelegatedVotes",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "votes",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "user",
        "type": "address"
      }
    ],
    "name": "userUnusedVotes",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]


Contract Creation Code
61010060409080825234620004a65780620036538038038091620000248285620004c7565b8339602092839181010312620004a657516001600160a01b0381169190829003620004a6578251926200005784620004ab565b60118452704275726e744865726d657320566f74657360781b828501528051916200008283620004ab565b6009835268312422a926a2a996ab60b91b8184015284516001600160401b0395909390868511620004905760009480620000bd8754620004eb565b92601f938481116200043f575b508590848311600114620003d7578892620003cb575b50508160011b916000199060031b1c19161785555b815190878211620003b7578190600193620001118554620004eb565b82811162000362575b5085918311600114620002fe578792620002f2575b5050600019600383901b1c191690821b1781555b60126080524660a052825184549181866200015e85620004eb565b9283835286830195878282169182600014620002d257505060011462000292575b506200018e92500382620004c7565b519020918051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c0820195828710908711176200027e5785905251902060c05281638b78c6d819557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a33360e05261312a90816200052982396080518161098b015260a05181611d61015260c05181611d88015260e051818181610a440152818161133d0152611b770152f35b634e487b7160e01b84526041600452602484fd5b8691508880528189209089915b858310620002b95750506200018e9350820101386200017f565b805483880185015286945088939092019181016200029f565b60ff191688526200018e95151560051b85010192503891506200017f9050565b0151905038806200012f565b8488528588208594509190601f198416895b888282106200034b575050841162000331575b505050811b01815562000143565b015160001960f88460031b161c1916905538808062000323565b838501518655889790950194938401930162000310565b909192508488528588208380860160051c820192888710620003ad575b91869588929594930160051c01915b8281106200039e5750506200011a565b8a81558695508791016200038e565b925081926200037f565b634e487b7160e01b86526041600452602486fd5b015190503880620000e0565b8880528689209250601f198416895b88828210620004285750509084600195949392106200040e575b505050811b018555620000f5565b015160001960f88460031b161c1916905538808062000400565b6001859682939686015181550195019301620003e6565b9091508780528588208480850160051c82019288861062000486575b9085949392910160051c01905b818110620004775750620000ca565b89815584935060010162000468565b925081926200045b565b634e487b7160e01b600052604160045260246000fd5b600080fd5b604081019081106001600160401b038211176200049057604052565b601f909101601f19168101906001600160401b038211908210176200049057604052565b90600182811c921680156200051d575b60208310146200050757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004fb56fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146102a257806307f636581461029d578063095ea7b31461029857806318160ddd14610293578063189aa7bf1461028e578063239cbb811461028957806323b872dd14610284578063256929621461027f578063289c26f71461027a578063313ce567146102755780633644e5151461027057806340c10f191461026b5780634d99dd161461026657806354d1f13d14610261578063587cde1e1461025c5780635c19a95c146102575780636b578185146102525780636fcfff451461024d57806370a0823114610248578063715018a6146102435780637757dc581461023e578063782d6fe1146102395780637c7b78e1146102345780637ecebe001461022f5780638da5cb5b1461022a578063951e26ec1461022557806395d89b41146102205780639ab24eb0146102115780639dc29fac1461021b578063a9059cbb14610216578063af959b0514610211578063c3cda5201461020c578063d505accf14610207578063dd62ed3e14610202578063e7a324dc146101fd578063f04e283e146101f8578063f1127ed8146101f3578063f14b34a6146101ee578063f2fde38b146101e9578063fa7e38da146101e45763fee81cf4146101df57600080fd5b611b9b565b611b2c565b611ad2565b611a8e565b6119a1565b611933565b6118da565b61184e565b611634565b611432565b6112a8565b6113c3565b6112e9565b6111e5565b61117b565b61110a565b6110a5565b611064565b610efd565b610e98565b610e18565b610db3565b610d40565b610cd8565b610c98565b610be9565b610b33565b610aed565b6109f0565b6109af565b610953565b610917565b6108ad565b610856565b610753565b6106ee565b6106b2565b6105f0565b61055b565b6103f1565b90600182811c921680156102f0575b60208310146102c157565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916102b6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761034557604052565b6102fa565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034557604052565b60208082528251818301819052939260005b8581106103dd575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b81810183015184820160400152820161039d565b34610510576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261050d5760405190808054610431816102a7565b808552916001918083169081156104c5575060011461046b575b6104678561045b8187038261034a565b6040519182918261038b565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106104ad57505050810160200161045b8261046761044b565b80546020858701810191909152909301928101610492565b8695506104679693506020925061045b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101929361044b565b80fd5b600080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361051057565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361051057565b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760206105e7610597610515565b73ffffffffffffffffffffffffffffffffffffffff6105b4610538565b91166000526009835260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54604051908152f35b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057610627610515565b73ffffffffffffffffffffffffffffffffffffffff60243591336000526004602052826106788260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346105105760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610510576020600254604051908152f35b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105773ffffffffffffffffffffffffffffffffffffffff61073a610515565b16600052600a6020526020604060002054604051908152f35b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105761078a610515565b6024359081151591828103610510576107a1611c4e565b8061084d575b6108235773ffffffffffffffffffffffffffffffffffffffff16906000918083526008602052604083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff84161790557ff250dd6faf51f88e0d298800d22453f75bd1af207056ddd9a4fb55f1408376fb8380a380f35b60046040517f270de3fd000000000000000000000000000000000000000000000000000000008152fd5b50803b156107a7565b346105105760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760206108a3610892610515565b61089a610538565b60443591612bc0565b6040519015158152f35b6000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261050d5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b346105105760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610510576020600754604051908152f35b346105105760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346105105760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760206109e8611d5c565b604051908152f35b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057610a27610515565b6024359073ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000163303610ac357600254838101809111610abe576000927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260025516938484526003825260408420818154019055604051908152a3005b611fb3565b60046040517f4d316367000000000000000000000000000000000000000000000000000000008152fd5b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057610b31610b27610515565b6024359033612546565b005b6000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261050d5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b6020908160408183019282815285518094520193019160005b828110610bbf575050505090565b835173ffffffffffffffffffffffffffffffffffffffff1685529381019392810192600101610bb1565b34610510576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105773ffffffffffffffffffffffffffffffffffffffff610c36610515565b16600052600b8152604060002090604051908181845491828152019360005281600020916000905b828210610c815761046785610c758189038261034a565b60405191829182610b98565b835486529485019460019384019390910190610c5e565b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057610b31610cd2610515565b33612152565b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057600435610d12611c4e565b600754816007557f9960c7dba5c668f2dcce571ead061f33d2e4174c892c8eb86b4b34529bb7271e600080a3005b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105773ffffffffffffffffffffffffffffffffffffffff610d8c610515565b1660005260066020526020610da5604060002054611f8f565b63ffffffff60405191168152f35b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105773ffffffffffffffffffffffffffffffffffffffff610dff610515565b1660005260036020526020604060002054604051908152f35b6000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261050d57610e4b611c4e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35580f35b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105773ffffffffffffffffffffffffffffffffffffffff610ee4610515565b16600052600b6020526020604060002054604051908152f35b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057610f34610515565b602435904382101561103a5773ffffffffffffffffffffffffffffffffffffffff166000526006602052604060002080549160005b838110610fe557505081610fa55750507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b60405191168152602090f35b610fd8610fe091610fd27bffffffffffffffffffffffffffffffffffffffffffffffffffffffff94611fe2565b90611f72565b505460201c90565b610f99565b90928082169080831860011c8201809211610abe578463ffffffff61101861100d8588611f72565b505463ffffffff1690565b1611156110285750925b90610f69565b939150611034906120e8565b90611022565b60046040517f3f8d3c1c000000000000000000000000000000000000000000000000000000008152fd5b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760206109e86110a0610515565b61201c565b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105773ffffffffffffffffffffffffffffffffffffffff6110f1610515565b1660005260056020526020604060002054604051908152f35b346105105760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105773ffffffffffffffffffffffffffffffffffffffff6111c7610515565b166000526008602052602060ff604060002054166040519015158152f35b34610510576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261050d5760405190806001805491611228836102a7565b808652928281169081156104c5575060011461124e576104678561045b8187038261034a565b92508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061129057505050810160200161045b8261046761044b565b80546020858701810191909152909301928101611275565b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760206109e86112e4610515565b612057565b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057611320610515565b6024359073ffffffffffffffffffffffffffffffffffffffff90817f0000000000000000000000000000000000000000000000000000000000000000163303610ac35761136d8382612d99565b168060005260036020526040600020805490838203918211610abe576000937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092558060025403600255604051908152a3005b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760206108a36113ff610515565b6024359061140d8233612d99565b612b47565b6064359060ff8216820361051057565b6084359060ff8216820361051057565b346105105760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057611469610515565b6024356044359160206115a961147d611412565b9461148a81421115613013565b61157061157c611498611d5c565b9260405190816114fa888201928b8b8560609194939273ffffffffffffffffffffffffffffffffffffffff60808301967fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf845216602083015260408201520152565b039161152c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09384810183528261034a565b519020604051938491888301968790916042927f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201520190565b0390810183528261034a565b5190206040805191825260ff90961660208201526084359581019590955260a43560608601526080850190565b846000958692838052039060015afa1561162f5761162c916116068451916115f18373ffffffffffffffffffffffffffffffffffffffff166000526005602052604060002090565b908154916115fe83612d58565b90551461309e565b61162773ffffffffffffffffffffffffffffffffffffffff8216151561253f565b612152565b80f35b611ceb565b346105105760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105761166b610515565b611673610538565b90604435606435926020611777611688611422565b9561169542821015611c86565b61157061174a6116a3611d5c565b92886116cf8173ffffffffffffffffffffffffffffffffffffffff166000526005602052604060002090565b8054906001820190556114fa6040519384928c8c8c8601968791959493909260a09360c08401977f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9855273ffffffffffffffffffffffffffffffffffffffff8092166020860152166040840152606083015260808201520152565b5190206040805191825260ff909716602082015260a4359681019690965260c43560608701526080860190565b856000968792838052039060015afa1561162f577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925908451908361182f8261180a73ffffffffffffffffffffffffffffffffffffffff956117e48782168015159081611842575b50611cf7565b73ffffffffffffffffffffffffffffffffffffffff166000526004602052604060002090565b9073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b556040519384528116931691602090a380f35b9050888c1614386117de565b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760206105e761188a610515565b73ffffffffffffffffffffffffffffffffffffffff6118a7610538565b91166000526004835260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b346105105760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105105760206040517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8152f35b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057611965610515565b61196d611c4e565b63389a75e1600c52806000526020600c209081544211611993576000610b319255611bec565b636f5e88186000526004601cfd5b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610510576119d8610515565b6024359063ffffffff908183168303610510576104679273ffffffffffffffffffffffffffffffffffffffff611a309260006020604051611a1881610329565b82815201521660005260066020526040600020611f72565b509060405191611a3f83610329565b54908116825260201c60208201526040519182918291909160207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019563ffffffff8151168552015116910152565b346105105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057610b31611ac8610515565b60243590336122ad565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057611b04610515565b611b0c611c4e565b8060601b15611b1e57610b3190611bec565b637448fbae6000526004601cfd5b346105105760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346105105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261051057611bd2610515565b63389a75e1600c52600052602080600c2054604051908152f35b73ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543303611c7857565b6382b429006000526004601cfd5b15611c8d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152fd5b6040513d6000823e3d90fd5b15611cfe57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e45520000000000000000000000000000000000006044820152fd5b6000467f000000000000000000000000000000000000000000000000000000000000000003611daa57507f000000000000000000000000000000000000000000000000000000000000000090565b6040518154919081611dbb846102a7565b80835260209485840194600191878382169182600014611ef1575050600114611e99575b5050509181611df6611e9393611e6795038261034a565b519020604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f95810195865260208601929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69085015246606085015230608085015291829060a0850190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261034a565b51902090565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410611edc5750505082010181611df6611e93611ddf565b80548685018601528794909301928101611ec3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016885293151560051b86019093019350849250611df69150611e939050611ddf565b60405190611f4182610329565b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8054821015611f8a5760005260206000200190600090565b611f43565b640100000000811015611fa55763ffffffff1690565b6335278d126000526004601cfd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201918211610abe57565b91908203918211610abe57565b73ffffffffffffffffffffffffffffffffffffffff166000526003602052604060002054600a6020526040600020548103908111610abe5790565b73ffffffffffffffffffffffffffffffffffffffff1660005260066020526040600020805490811560001461208e57506000919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201918211610abe577bffffffffffffffffffffffffffffffffffffffffffffffffffffffff916120df91611f72565b505460201c1690565b9060018201809211610abe57565b91908201809211610abe57565b9060405191828154918282526020928383019160005283600020936000905b82821061213857505050611f419250038361034a565b855484526001958601958895509381019390910190612122565b61217c8173ffffffffffffffffffffffffffffffffffffffff16600052600b602052604060002090565b5460018111612283576001600091146121f6575b73ffffffffffffffffffffffffffffffffffffffff809181851694856121dc575b501691167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f600080a4565b6121f0906121e98661201c565b90866122ad565b386121b1565b6122208273ffffffffffffffffffffffffffffffffffffffff16600052600b602052604060002090565b805415611f8a578160209173ffffffffffffffffffffffffffffffffffffffff935220541661227e6122768261180a8573ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b548284612546565b612190565b60046040517f1650e725000000000000000000000000000000000000000000000000000000008152fd5b919073ffffffffffffffffffffffffffffffffffffffff92838216908115801561243b575b8015612433575b612283576123108361230b8373ffffffffffffffffffffffffffffffffffffffff16600052600b602052604060002090565b61244c565b6123b9575b90611f41948261234a8561180a889673ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b6123558582546120f6565b90556123818173ffffffffffffffffffffffffffffffffffffffff16600052600a602052604060002090565b61238c8582546120f6565b9055167f96eafeca8c3c21ab2fa4a636b93ba20c9e22e3d222d92c6530fedc29a53671ee600080a461289b565b6123e38173ffffffffffffffffffffffffffffffffffffffff16600052600b602052604060002090565b546007541015612315579061242961242561241e8473ffffffffffffffffffffffffffffffffffffffff166000526008602052604060002090565b5460ff1690565b1590565b6122835790612315565b5083156122d9565b50836124468261201c565b106122d2565b73ffffffffffffffffffffffffffffffffffffffff61246c9216906124ab565b90565b916124a7918354907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b9055565b600181019082600052816020526040600020541560001461253757805468010000000000000000811015610345576125226124ed826001879401855584611f72565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90555491600052602052604060002055600190565b505050600090565b1561051057565b9291908161255382612057565b106126945773ffffffffffffffffffffffffffffffffffffffff8085169060009582875260096020526125a984604089209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5485810390808211610abe578614612656575b611f4196979261263f837f2378cf3c967a76a82bf1c637dc488f42192f1a912eed6bd91dd71041aa979773936126188961180a8c9a9873ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b5573ffffffffffffffffffffffffffffffffffffffff16600052600a602052604060002090565b61264a86825461200f565b905585169280a4612a55565b61268c6126838373ffffffffffffffffffffffffffffffffffffffff16600052600b602052604060002090565b84871690612735565b6125bc578780fd5b60046040517f7fc3f0d3000000000000000000000000000000000000000000000000000000008152fd5b8054908115612706577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff809201916126f68383611f72565b909182549160031b1b1916905555565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60018101918060005282602052604060002054928315156000146127ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9283850190858211610abe578054948501948511610abe5760009585836127a7946127b698036127bc575b5050506126be565b90600052602052604060002090565b55600190565b6127e66127e0916127d06127f69487611f72565b90549060031b1c92839187611f72565b9061246f565b8590600052602052604060002090565b5538808061279f565b50505050600090565b8054680100000000000000008110156103455761282a91600182018155611f72565b61286c57815160209283015190921b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff92909216919091179055565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b9073ffffffffffffffffffffffffffffffffffffffff6128db8373ffffffffffffffffffffffffffffffffffffffff166000526006602052604060002090565b805480159491908515612a1b576129137bffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b169586613103565b9515806129f8575b156129975761293961296f92610fd261293389612b01565b93611fe2565b509063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724600080a4565b506129f3906129a543611f8f565b906129ee6129b288612b01565b6129c96129bd611f34565b63ffffffff9095168552565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166020840152565b612808565b61296f565b50612a0e61100d612a0883611fe2565b84611f72565b63ffffffff16431461291b565b6129137bffffffffffffffffffffffffffffffffffffffffffffffffffffffff612a50610fd8612a4a85611fe2565b86611f72565b61290b565b9073ffffffffffffffffffffffffffffffffffffffff612a958373ffffffffffffffffffffffffffffffffffffffff166000526006602052604060002090565b805480159491908515612acd576129137bffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005b169586613110565b6129137bffffffffffffffffffffffffffffffffffffffffffffffffffffffff612afc610fd8612a4a85611fe2565b612ac5565b7c0100000000000000000000000000000000000000000000000000000000811015611fa5577bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b3360005260036020526040600020908154838103908111610abe5773ffffffffffffffffffffffffffffffffffffffff9255169081600052600360205260406000208181540190556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3600190565b612bca8382612d99565b73ffffffffffffffffffffffffffffffffffffffff80821692338414612d4a57836000526004602052612c213360406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8103612ce4575b50612c967fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9373ffffffffffffffffffffffffffffffffffffffff166000526003602052604060002090565b612ca186825461200f565b9055612ccd8173ffffffffffffffffffffffffffffffffffffffff166000526003602052604060002090565b8054860190556040519485521692602090a3600190565b858103908111610abe577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93612c9691612d423361180a8473ffffffffffffffffffffffffffffffffffffffff166000526004602052604060002090565b559350612c4a565b91505061246c929150612b47565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610abe5760010190565b8051821015611f8a5760209160051b010190565b9091612da48261201c565b918383101561300d57600091612dda8273ffffffffffffffffffffffffffffffffffffffff16600052600b602052604060002090565b90612de482612103565b95865195855b87811080612ffb575b15612f8257612e1f612e05828b612d85565b5173ffffffffffffffffffffffffffffffffffffffff1690565b612e4d8161180a8973ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b5490612e68612e5b82612057565b8390818110908218021890565b9081612e80575b505050612e7b90612d58565b612dea565b81612e9081612e7b96959c6120f6565b9a03612f4257612ebe612eb973ffffffffffffffffffffffffffffffffffffffff83168a612735565b61253f565b6000612eee8261180a8c73ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b555b612efa8282612a55565b73ffffffffffffffffffffffffffffffffffffffff8091169089167f2378cf3c967a76a82bf1c637dc488f42192f1a912eed6bd91dd71041aa979773600080a4903880612e6f565b612f708161180a8b73ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b612f7b83825461200f565b9055612ef0565b509093955084919650612f9592506120f6565b1061269457612fd1612ff891612fcb8473ffffffffffffffffffffffffffffffffffffffff16600052600a602052604060002090565b5461200f565b9173ffffffffffffffffffffffffffffffffffffffff16600052600a602052604060002090565b55565b508261300788846120f6565b10612df3565b50915050565b1561301a57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332304d756c7469566f7465733a207369676e617475726520657870697260448201527f65640000000000000000000000000000000000000000000000000000000000006064820152fd5b156130a557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332304d756c7469566f7465733a20696e76616c6964206e6f6e636500006044820152fd5b908101809111610abe5790565b908103908111610abe579056fea164736f6c6343000813000a000000000000000000000000c466af7ff16ef0f1a7fa4e23e095e47a4058d791