BGT Token
Contract Overview
Balance:
10490726412.12856 BERA

Token:
More Info
Tag:
Not Available. Update?

Contract Creator:

Contract Source Code Verified (Partial Match)
Contract Name:
BGT

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 4294967295 runs

Created At:
Fri, 07 Jun 2024 06:48:47 GMT
BGT.sol
src
pol
BGT.sol


Contract ABI
[
  {
    "inputs": [],
    "name": "AlreadyInitialized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "AmountLessThanMinIncentiveRate",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BlockDoesNotExist",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BlockNotInBuffer",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "CannotRecoverRewardToken",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "CannotRecoverStakingToken",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "CheckpointUnorderedInsertion",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "DelegateStakedOverflow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ECDSAInvalidSignature",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "length",
        "type": "uint256"
      }
    ],
    "name": "ECDSAInvalidSignatureLength",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "s",
        "type": "bytes32"
      }
    ],
    "name": "ECDSAInvalidSignatureS",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "increasedSupply",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "cap",
        "type": "uint256"
      }
    ],
    "name": "ERC20ExceededSafeSupply",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "allowance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientAllowance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "balance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "approver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidApprover",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSpender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "timepoint",
        "type": "uint256"
      },
      {
        "internalType": "uint48",
        "name": "clock",
        "type": "uint48"
      }
    ],
    "name": "ERC5805FutureLookup",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ERC6372InconsistentClock",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsolventReward",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientDelegateStake",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientSelfStake",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientStake",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "currentNonce",
        "type": "uint256"
      }
    ],
    "name": "InvalidAccountNonce",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidCommission",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidCuttingBoardWeights",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidInitialization",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidMaxIncentiveTokensCount",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidMinter",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidStartBlock",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvariantCheckFailed",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MaxNumWeightsPerCuttingBoardIsZero",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NoWhitelistedTokens",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotActionableBlock",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotApprovedSender",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotBGT",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotBlockRewardController",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotDelegate",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotDistributor",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotEnoughBalance",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotEnoughTime",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotFeeCollector",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotFriendOfTheChef",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotGovernance",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotInitializing",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotOperator",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotProver",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotRootFollower",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotValidatorOrOperator",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "OwnableInvalidOwner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "OwnableUnauthorizedAccount",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "PayoutAmountIsZero",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "PayoutTokenIsZero",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "QueuedCuttingBoardNotFound",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "QueuedCuttingBoardNotReady",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "RewardCycleNotEnded",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint8",
        "name": "bits",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "SafeCastOverflowedUintDowncast",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "StakeAmountIsZero",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TokenAlreadyWhitelistedOrLimitReached",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TokenNotWhitelisted",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TooManyWeights",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TotalSupplyOverflow",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "Unauthorized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "VaultAlreadyExists",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "expiry",
        "type": "uint256"
      }
    ],
    "name": "VotesExpiredSignature",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "WithdrawAmountIsZero",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ZeroAddress",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint128",
        "name": "amount",
        "type": "uint128"
      }
    ],
    "name": "ActivateBoost",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previous",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "current",
        "type": "address"
      }
    ],
    "name": "BeraChefChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint128",
        "name": "amount",
        "type": "uint128"
      }
    ],
    "name": "CancelBoost",
    "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": false,
        "internalType": "uint256",
        "name": "previousVotes",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newVotes",
        "type": "uint256"
      }
    ],
    "name": "DelegateVotesChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint128",
        "name": "amount",
        "type": "uint128"
      }
    ],
    "name": "DropBoost",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [],
    "name": "EIP712DomainChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "version",
        "type": "uint64"
      }
    ],
    "name": "Initialized",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previous",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "current",
        "type": "address"
      }
    ],
    "name": "MinterChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint128",
        "name": "amount",
        "type": "uint128"
      }
    ],
    "name": "QueueBoost",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "Redeem",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "SenderWhitelisted",
    "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": "value",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "oldRate",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newRate",
        "type": "uint256"
      }
    ],
    "name": "UpdateCommission",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "CLOCK_MODE",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      }
    ],
    "name": "activateBoost",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "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": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "beraChef",
    "outputs": [
      {
        "internalType": "contract IBeraChef",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      }
    ],
    "name": "boosted",
    "outputs": [
      {
        "internalType": "uint128",
        "name": "",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      }
    ],
    "name": "boostedQueue",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "blockNumberLast",
        "type": "uint32"
      },
      {
        "internalType": "uint128",
        "name": "balance",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "rewardRate",
        "type": "uint256"
      }
    ],
    "name": "boostedRewardRate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      }
    ],
    "name": "boostees",
    "outputs": [
      {
        "internalType": "uint128",
        "name": "",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "boosts",
    "outputs": [
      {
        "internalType": "uint128",
        "name": "",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "internalType": "uint128",
        "name": "amount",
        "type": "uint128"
      }
    ],
    "name": "cancelBoost",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint32",
        "name": "pos",
        "type": "uint32"
      }
    ],
    "name": "checkpoints",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint48",
            "name": "_key",
            "type": "uint48"
          },
          {
            "internalType": "uint208",
            "name": "_value",
            "type": "uint208"
          }
        ],
        "internalType": "struct Checkpoints.Checkpoint208",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "clock",
    "outputs": [
      {
        "internalType": "uint48",
        "name": "",
        "type": "uint48"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "rewardRate",
        "type": "uint256"
      }
    ],
    "name": "commissionRewardRate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      }
    ],
    "name": "commissions",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "blockNumberLast",
        "type": "uint32"
      },
      {
        "internalType": "uint224",
        "name": "rate",
        "type": "uint224"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "delegatee",
        "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": "account",
        "type": "address"
      }
    ],
    "name": "delegates",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "internalType": "uint128",
        "name": "amount",
        "type": "uint128"
      }
    ],
    "name": "dropBoost",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "eip712Domain",
    "outputs": [
      {
        "internalType": "bytes1",
        "name": "fields",
        "type": "bytes1"
      },
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "version",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "chainId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "verifyingContract",
        "type": "address"
      },
      {
        "internalType": "bytes32",
        "name": "salt",
        "type": "bytes32"
      },
      {
        "internalType": "uint256[]",
        "name": "extensions",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "timepoint",
        "type": "uint256"
      }
    ],
    "name": "getPastTotalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "timepoint",
        "type": "uint256"
      }
    ],
    "name": "getPastVotes",
    "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": "owner",
        "type": "address"
      }
    ],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "isWhitelistedSender",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "distributor",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minter",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "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": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "internalType": "uint128",
        "name": "amount",
        "type": "uint128"
      }
    ],
    "name": "queueBoost",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "queuedBoost",
    "outputs": [
      {
        "internalType": "uint128",
        "name": "",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "redeem",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_beraChef",
        "type": "address"
      }
    ],
    "name": "setBeraChef",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "validator",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "rate",
        "type": "uint256"
      }
    ],
    "name": "setCommission",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_minter",
        "type": "address"
      }
    ],
    "name": "setMinter",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_staker",
        "type": "address"
      }
    ],
    "name": "setStaker",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "staker",
    "outputs": [
      {
        "internalType": "contract BGTStaker",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalBoosts",
    "outputs": [
      {
        "internalType": "uint128",
        "name": "",
        "type": "uint128"
      }
    ],
    "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": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "unboostedBalanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "whitelistSender",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
6080806040523460155761518f908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630613fef81461033457806306fdde031461032f578063075461721461032a578063095ea7b31461032557806312fc07741461032057806318160ddd1461031b5780631b9e2fad146103165780631e9a695014610311578063230778ad1461030c57806323b872dd14610307578063313ce5671461030257806331729a45146102fd5780633a46b1a8146102f857806340c10f19146102f35780634bf5d7e9146102ee57806357c60951146102e9578063587cde1e146102e45780635c19a95c146102df5780635c215bd5146102da5780635ebaf1db146102d55780636fcfff45146102d057806370a08231146102cb578063715018a6146102c65780637b05afb5146102c15780637ecebe00146102bc57806384b0196e146102b75780638da5cb5b146102b25780638e539e8c146102ad57806391ddadf4146102a85780639203ad5d146102a357806395c0e2321461029e57806395d89b41146102995780639ab24eb014610294578063a29a43bb1461028f578063a9059cbb1461028a578063c2ca9c3a14610285578063c3cda52014610280578063c4d66de81461027b578063d66e54e114610276578063d8da339914610271578063dd62ed3e1461026c578063e1f63d2e14610267578063e3b173cc14610262578063ed34843c1461025d578063f1127ed814610258578063f2fde38b14610253578063fa8ce2451461024e578063fb8afcfa14610249578063fca3b5aa146102445763fdabc9861461023f575f80fd5b613051565b612f65565b612de3565b612d79565b612d2e565b612c37565b612bee565b612ae8565b6128e0565b61287c565b6127fc565b6127af565b612533565b61238f565b612222565b612165565b6120d9565b61206d565b612034565b611c56565b611c11565b611bc8565b6119f5565b611985565b611876565b611742565b6116ce565b6115f4565b611568565b61149a565b611449565b6113d0565b61138c565b6112f0565b61129f565b6111d8565b610f53565b610da3565b610b5f565b610b26565b610a0d565b61091f565b610832565b6107c6565b61076c565b6106fa565b610514565b6104c4565b610473565b61035b565b73ffffffffffffffffffffffffffffffffffffffff81160361035757565b5f80fd5b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760043561039681610339565b6024359081151580920361035757602073ffffffffffffffffffffffffffffffffffffffff7f7cc8eedb33d0513aac63d861ea275788d3526752cda024d59cfad9d9174190ca926103e56137c3565b1692835f526009825260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a2005b5f91031261035757565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610357576104c06104ac61316a565b604051918291602083526020830190610430565b0390f35b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760043561054f81610339565b602435335f52600960205260ff60405f2054161561068c57339081156106605773ffffffffffffffffffffffffffffffffffffffff831692831561063457817f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925926106206020936105fd3373ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b9073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152a360405160018152602090f35b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7ff2d81d95000000000000000000000000000000000000000000000000000000005f5260045ffd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6040910112610357576004356106ea81610339565b906024356106f781610339565b90565b346103575760206fffffffffffffffffffffffffffffffff61076273ffffffffffffffffffffffffffffffffffffffff610733366106b4565b91165f526005845260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b5416604051908152f35b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254604051908152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff60043561081681610339565b165f526009602052602060ff60405f2054166040519015158152f35b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760043561086d81610339565b6024359061087b82336138d1565b33156108f35761088b8233613dd0565b5f38818085855af1156108e65773ffffffffffffffffffffffffffffffffffffffff9060405192835216907fd12200efa34901b99367694174c3b0d32c99585fdf37c7c26892136ddd0836d960203392a36108e461387f565b005b63b12d13eb5f526004601cfd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff60043561096f81610339565b6109776137c3565b1680156109e5577fffffffffffffffffffffffff00000000000000000000000000000000000000006001548273ffffffffffffffffffffffffffffffffffffffff82167fd1a23f59fe1573ea897d9e6507a901449099876db7bced271b7698c31f29d9645f80a31617600155005b7fd92e233d000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103575760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757600435610a4881610339565b602435610a5481610339565b6044359073ffffffffffffffffffffffffffffffffffffffff83165f52600960205260ff60405f2054161561068c57610a8d82846138d1565b610a973384613554565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8403610ad6575b610aca9350614030565b60405160018152602090f35b828410610af257610aed83610aca95033383614a80565b610ac0565b82847ffb8f41b2000000000000000000000000000000000000000000000000000000005f523360045260245260445260645ffd5b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757602060405160128152f35b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757600435610b9a81610339565b6024359073ffffffffffffffffffffffffffffffffffffffff811691823303610cb4575b6103e88111610caf57610c107f55cf88ba4d477cec6d4970577df857afe65c042c6dcb2563032f14b06ce0d0d49273ffffffffffffffffffffffffffffffffffffffff165f52600860205260405f2090565b610c6e815491610c2d610c268463ffffffff1690565b9360201c90565b9263ffffffff8116610ca0575b504363ffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000602086901b16179055565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9290921682526020820192909252a2005b610ca990613909565b5f610c3a565b613857565b610cef610cd660015473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5865c60c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015290602090829060249082905afa8015610d9e5773ffffffffffffffffffffffffffffffffffffffff915f91610d6f575b5016330315610bbe5761382f565b610d91915060203d602011610d97575b610d898183613118565b8101906131a5565b5f610d61565b503d610d7f565b6131ba565b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757600435610dde81610339565b6024359065ffffffffffff610df243613947565b1680831015610f245750610e46610e4c9173ffffffffffffffffffffffffffffffffffffffff165f527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260405f2090565b91613947565b8154905f829160058411610ecc575b610e66935084614381565b9081610e9757505079ffffffffffffffffffffffffffffffffffffffffffffffffffff5f5b60405191168152602090f35b610ebb79ffffffffffffffffffffffffffffffffffffffffffffffffffff9261320d565b905f5260205f20015460301c610e8b565b9192610ed78161420e565b8103908111610f1f57610e6693855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610f0d575091610e5b565b929150610f199061398f565b90610e5b565b6131e0565b827fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757600435610f8e81610339565b60243573ffffffffffffffffffffffffffffffffffffffff5f541633036111b05773ffffffffffffffffffffffffffffffffffffffff821615611184577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254818101809111610f1f577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025573ffffffffffffffffffffffffffffffffffffffff82168061113257817f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254037f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02555b6040518281525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a37f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02549179ffffffffffffffffffffffffffffffffffffffffffffffffffff808411611102576110fa83835f614b06565b6108e461387f565b7f1cb15d26000000000000000000000000000000000000000000000000000000005f52600484905260245260445ffd5b6111798373ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2090565b82815401905561107c565b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f1b0eb4ec000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575761120f43613947565b65ffffffffffff8061122043613947565b16911603611277576104c0604051611239604082613118565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c740000006020820152604051918291602083526020830190610430565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff60043561134081610339565b165f527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610357576108e46004356113ca81610339565b336139aa565b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff60043561142081610339565b165f52600760205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575761151b6004356114d881610339565b73ffffffffffffffffffffffffffffffffffffffff165f527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260405f2090565b5463ffffffff81116115385760209063ffffffff60405191168152f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760206115ec6004356115a881610339565b73ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205490565b604051908152f35b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575761162a6137c3565b5f73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff60043561171e81610339565b165f5260086020526040805f205481519063ffffffff8116825260201c6020820152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff60043561179281610339565b165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b92939073ffffffffffffffffffffffffffffffffffffffff9261181c61182a927f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e0870190610430565b908582036040870152610430565b9360608401521660808201525f60a082015260c0818303910152602080835192838152019201905f5b8181106118605750505090565b8251845260209384019390920191600101611853565b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610357577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10054158061195c575b156118fe576118da613aea565b6118e2613bfb565b906104c06118ee6131c5565b60405193849330914691866117c8565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10154156118cd565b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760043565ffffffffffff611a3743613947565b169081811015611b9a57611a4a90613947565b7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0254905f829160058411611b27575b611aa493507fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d02614381565b80611ab557506040515f8152602090f35b611ad979ffffffffffffffffffffffffffffffffffffffffffffffffffff9161320d565b7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d025f527f88c46c62109817164d0ae1873830d4299a82e5daf552a3d8e989b27638fcf748015460301c610e8b565b9192611b328161420e565b8103908111610f1f57611aa4937fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d025f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14611b88575091611a79565b929150611b949061398f565b90611a79565b7fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610357576020611c0143613947565b65ffffffffffff60405191168152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760206115ec600435611c5181610339565b61323a565b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757600435611c9181610339565b611cbd816105fd3373ffffffffffffffffffffffffffffffffffffffff165f52600460205260405f2090565b54611cea611ce463ffffffff83169260201c6fffffffffffffffffffffffffffffffff1690565b91613909565b611d4e611d1182611d0c6003546fffffffffffffffffffffffffffffffff1690565b6132b5565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000006003541617600355565b611de8611d798373ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2090565b611dad83611d9783546fffffffffffffffffffffffffffffffff1690565b016fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b611e17611d79836105fd3373ffffffffffffffffffffffffffffffffffffffff165f52600560205260405f2090565b611eff611e423373ffffffffffffffffffffffffffffffffffffffff165f52600660205260405f2090565b6fffffffffffffffffffffffffffffffff838254611ec28383611e7e611e77856fffffffffffffffffffffffffffffffff1690565b9460801c90565b031685906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b01166fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b5f611f2c836105fd3373ffffffffffffffffffffffffffffffffffffffff165f52600460205260405f2090565b55611f4f610cd660025473ffffffffffffffffffffffffffffffffffffffff1690565b803b15610357576040517fadc9772e0000000000000000000000000000000000000000000000000000000081523360048201526fffffffffffffffffffffffffffffffff83166024820152905f908290604490829084905af18015610d9e5761201a575b507f99966631dd6d6c02c5416ca2369709e025ff974a2f1b3f11c8b74acc67731f0e73ffffffffffffffffffffffffffffffffffffffff604051931692806120153394829190916fffffffffffffffffffffffffffffffff6020820193169052565b0390a3005b806120285f61202e93613118565b80610426565b5f611fb3565b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610357576104c06104ac6132e7565b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757602079ffffffffffffffffffffffffffffffffffffffffffffffffffff6120d06120cb6004356114d881610339565b613cce565b16604051908152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff60043561212981610339565b6121316137c3565b1680156109e5577fffffffffffffffffffffffff000000000000000000000000000000000000000060025416176002555f80f35b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610357576004356121a081610339565b602435335f52600960205260ff60405f2054161561068c57610aca916121c682336138d1565b33614030565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60409101126103575760043561220281610339565b906024356fffffffffffffffffffffffffffffffff811681036103575790565b3461035757612230366121cc565b335f5260046020526122ca6122668360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b612286836fffffffffffffffffffffffffffffffff835460201c16613322565b7fffffffffffffffffffffffff00000000000000000000000000000000ffffffff73ffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b335f52600660205261233260405f206fffffffffffffffffffffffffffffffff83825460801c03166fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b7f4556e704857739059d8dd18ea57df12e3b2b0d29fda4d46d19a113ebce73d1ec73ffffffffffffffffffffffffffffffffffffffff604051936fffffffffffffffffffffffffffffffff602086019416855216928033930390a3005b346103575760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610357576004356123ca81610339565b6044359060243560643560ff811681036103575760843560a4359185421161250757916124fb916125029360426108e49860405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8b16604083015289606083015260808201526080815261245c60a082613118565b519020612467614e9d565b61246f614f07565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526124c060c082613118565b51902090604051917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015220613d35565b9182613d4d565b6139aa565b857f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760043561256e81610339565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549067ffffffffffffffff6125b460ff604085901c16159367ffffffffffffffff1690565b16801590816127a7575b600114908161279d575b159081612794575b5061276c57612651908261264860017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b6126f157613354565b61265757005b6126c27fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b612767680100000000000000007fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b613354565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050155f6125d0565b303b1591506125c8565b8391506125be565b34610357575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760206fffffffffffffffffffffffffffffffff60035416604051908152f35b3461035757604061285373ffffffffffffffffffffffffffffffffffffffff612824366106b4565b91165f526004602052825f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b546fffffffffffffffffffffffffffffffff82519163ffffffff8116835260201c166020820152f35b346103575760206128d76105fd612892366106b4565b919073ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b54604051908152f35b34610357576128ee366121cc565b61294061291d836105fd3373ffffffffffffffffffffffffffffffffffffffff165f52600560205260405f2090565b611dad8361293b83546fffffffffffffffffffffffffffffffff1690565b613322565b612978611d11826129626003546fffffffffffffffffffffffffffffffff1690565b036fffffffffffffffffffffffffffffffff1690565b6129c16129a33373ffffffffffffffffffffffffffffffffffffffff165f52600660205260405f2090565b611dad8361296283546fffffffffffffffffffffffffffffffff1690565b6129ec6129a38373ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2090565b612a0e610cd660025473ffffffffffffffffffffffffffffffffffffffff1690565b803b15610357576040517ff3fef3a30000000000000000000000000000000000000000000000000000000081523360048201526fffffffffffffffffffffffffffffffff83166024820152905f908290604490829084905af18015610d9e57612ad4575b507fdc232a1d360a44eb299ff026b5f6badfe40d17f95b96da5db7168e88662e9a2c73ffffffffffffffffffffffffffffffffffffffff604051931692806120153394829190916fffffffffffffffffffffffffffffffff6020820193169052565b806120285f612ae293613118565b5f612a72565b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757600435612b2381610339565b73ffffffffffffffffffffffffffffffffffffffff60243591165f52600860205260405f205460201c8082027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828409926127108285108301808603951493858211159209918093612bdc5750612bcf57602092828211900360fc1b910360041c177fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9102604051908152f35b63ae47f7025f526004601cfd5b915050602092506127109150046115ec565b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575760206115ec600435612c2e81610339565b602435906135a3565b346103575760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035757600435612c7281610339565b60243563ffffffff8116810361035757612cf2612cf891612ce4604094612c976136be565b50612ca06136be565b5073ffffffffffffffffffffffffffffffffffffffff165f527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260405f2090565b612cec6136be565b50614a1a565b50614a5c565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff602083519265ffffffffffff81511684520151166020820152f35b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610357576108e4600435612d6c81610339565b612d746137c3565b6136d6565b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff600435612dc981610339565b165f526006602052602060405f205460801c604051908152f35b3461035757612df1366121cc565b612e0d6fffffffffffffffffffffffffffffffff8216336138d1565b335f526006602052612e6a60405f20612e2a83825460801c6132b5565b6fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b335f526004602052612f04612ea08360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000811663ffffffff4316176fffffffffffffffffffffffffffffffff602092831c16850190911b73ffffffffffffffffffffffffffffffff0000000016179055565b7f110aaf2f67d6465fc043087acff06b302e8db1b6b9157d72ee4d4cc5c96bcb9d73ffffffffffffffffffffffffffffffffffffffff604051931692806120153394829190916fffffffffffffffffffffffffffffffff6020820193169052565b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff600435612fb581610339565b612fbd6137c3565b168015613029577fffffffffffffffffffffffff00000000000000000000000000000000000000005f548273ffffffffffffffffffffffffffffffffffffffff82167f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f65f80a316175f55005b7fd8d5894f000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103575760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103575773ffffffffffffffffffffffffffffffffffffffff6004356130a181610339565b165f52600660205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761311357604052565b6130ca565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761311357604052565b60405190613168604083613118565b565b60405190613179604083613118565b601582527f4265726120476f7665726e616e636520546f6b656e00000000000000000000006020830152565b9081602091031261035757516106f781610339565b6040513d5f823e3d90fd5b604051906131d4602083613118565b5f808352366020840137565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201918211610f1f57565b73ffffffffffffffffffffffffffffffffffffffff16805f52600660205260405f2054905f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2054906fffffffffffffffffffffffffffffffff81168203918211610f1f5760801c8103908111610f1f5790565b906fffffffffffffffffffffffffffffffff809116911601906fffffffffffffffffffffffffffffffff8211610f1f57565b604051906132f6604083613118565b600382527f42475400000000000000000000000000000000000000000000000000000000006020830152565b906fffffffffffffffffffffffffffffffff809116911603906fffffffffffffffffffffffffffffffff8211610f1f57565b61336890613360614737565b612d74614737565b61337061316a565b6133786132e7565b90613381614737565b613389614737565b80519067ffffffffffffffff8211613113576133ce826133c97f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0354613a99565b61478e565b602090601f83116001146134525791806134209261316895945f92613447575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035561484c565b015190505f806133ee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0831691907f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0925f5b81811061353c575091600193918561316897969410613505575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035561484c565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f80806134d8565b929360206001819287860151815501950193016134be565b906105fd61359f9273ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b5490565b600354906fffffffffffffffffffffffffffffffff821692831591826136b55773ffffffffffffffffffffffffffffffffffffffff165f5260076020526fffffffffffffffffffffffffffffffff60405f205416808202947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828409926fffffffffffffffffffffffffffffffff82888610890180870396149486821115930996835f031616918281048060030260021880820260020302808202600203028082026002030280820260020302808202600203028091026002030297600184805f0304019681956136a357505050612bcf57848203049311900302170290565b96509650965050505050612bcf570490565b50505050505f90565b604051906136cb826130f7565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff1680156137975773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416330361380357565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b7fdafb6d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fdc81db85000000000000000000000000000000000000000000000000000000005f5260045ffd5b477f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254116138a957565b7f8e7572da000000000000000000000000000000000000000000000000000000005f5260045ffd5b6138da9061323a565b106138e157565b7fad3a8b9e000000000000000000000000000000000000000000000000000000005f5260045ffd5b63ffffffff611fff918143160316111561391f57565b7fe8966d7a000000000000000000000000000000000000000000000000000000005f5260045ffd5b65ffffffffffff811161395f5765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b9060018201809211610f1f57565b91908201809211610f1f57565b73ffffffffffffffffffffffffffffffffffffffff8181165f8181527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006020526040812080548685167fffffffffffffffffffffffff00000000000000000000000000000000000000008216811790925561316896941694613a939390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205490565b916143e5565b90600182811c92168015613ae0575b6020831014613ab357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691613aa8565b604051905f827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025491613b1c83613a99565b8083529260018116908115613bbe5750600114613b40575b61316892500383613118565b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310613ba257505090602061316892820101613b34565b6020919350806001915483858901015201910190918492613b8a565b602092506131689491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101613b34565b604051905f827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035491613c2d83613a99565b8083529260018116908115613bbe5750600114613c505761316892500383613118565b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310613cb257505090602061316892820101613b34565b6020919350806001915483858901015201910190918492613c9a565b805480613cdb5750505f90565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810111610f1f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915f5260205f2001015460301c90565b916106f79391613d44936145aa565b90929192614670565b73ffffffffffffffffffffffffffffffffffffffff16805f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20805492839160018301905503613da2575050565b7f752d88c0000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b73ffffffffffffffffffffffffffffffffffffffff81168015908115613f45575f90613e44613e20867f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025461399d565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0255565b613e8f857f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254037f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0255565b6040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3613ecb575b905f61316892614b06565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025479ffffffffffffffffffffffffffffffffffffffffffffffffffff90818111613f17575050613ec0565b7f1cb15d26000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b613f8c8373ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2090565b54848110613fe65790845f9203613fe08573ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2090565b55613e44565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8416600452602452604484905260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff84169384156108f35773ffffffffffffffffffffffffffffffffffffffff82168015611184576140b58273ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2090565b549584871061418b578461316896970361410c8473ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2090565b556141548473ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3614b06565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b81156141e1570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b801561437c576106f79061431261430b6143016142f76142ed6142e36142d96142cf60016142bd5f8b608081901c8061436e575b50806142516142b39260401c90565b80614361575b506142628160201c90565b80614354575b506142738160101c90565b80614347575b506142848160081c90565b8061433a575b506142958160041c90565b8061432d575b506142a68160021c90565b80614320575b5060011c90565b6143185760011c90565b1b6142c8818b6141d7565b0160011c90565b6142c8818a6141d7565b6142c881896141d7565b6142c881886141d7565b6142c881876141d7565b6142c881866141d7565b6142c881856141d7565b80926141d7565b90614cb8565b820160011c90565b600291509201915f6142ac565b600491509201915f61429b565b600891509201915f61428a565b601091509201915f614279565b602091509201915f614268565b604091509201915f614257565b6080925090506142b3614242565b505f90565b91905b8382106143915750505090565b9091928083169080841860011c8201809211610f1f57845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146143d35750925b9190614384565b9392506143df9061398f565b916143cc565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff81169084821415806145a1575b61442d575b5050505050565b816144ff575b505082614442575b8080614426565b6144f46144db7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724936144d56144cf79ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260405f2090565b91614cca565b90614d9e565b6040805192851683529316602082015291829190820190565b0390a25f808061443b565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff6145976144db6145887fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260405f2090565b61459188614cca565b90614d3a565b0390a25f80614433565b50831515614421565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161462e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d9e575f5173ffffffffffffffffffffffffffffffffffffffff81161561462457905f905f90565b505f906001905f90565b5050505f9160039190565b6004111561464357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61467981614639565b80614682575050565b61468b81614639565b600181036146bb577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6146c481614639565b600281036146f857507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80614704600392614639565b1461470c5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561476657565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b601f811161479a575050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f5260205f20906020601f840160051c830193106147f3575b601f0160051c01905b8181106147e8575050565b5f81556001016147dd565b90915081906147d4565b601f821161480a57505050565b5f5260205f20906020601f840160051c83019310614842575b601f0160051c01905b818110614837575050565b5f815560010161482c565b9091508190614823565b90815167ffffffffffffffff8111613113576148b28161488c7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0454613a99565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace046147fd565b602092601f8211600114614923576148ff929382915f926134475750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0455565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216937f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa915f5b868110614a0257508360019596106149cb575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0455565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f80806149a1565b9192602060018192868501518155019401920161498e565b8054821015614a2f575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b90604051614a69816130f7565b915465ffffffffffff8116835260301c6020830152565b9073ffffffffffffffffffffffffffffffffffffffff8216156106605773ffffffffffffffffffffffffffffffffffffffff811615610634576105fd614b039273ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b55565b90919073ffffffffffffffffffffffffffffffffffffffff168015614be9575b73ffffffffffffffffffffffffffffffffffffffff6131689316908115614bd1575b5f527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0060205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0060205273ffffffffffffffffffffffffffffffffffffffff60405f205416906143e5565b614be2614bdd84614cca565b614dfe565b5050614b48565b614bf282614cca565b92614bfc43613947565b9379ffffffffffffffffffffffffffffffffffffffffffffffffffff80614c427fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d02613cce565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610f1f576131689473ffffffffffffffffffffffffffffffffffffffff92614cad917fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d02614fdf565b905050935050614b26565b9080821015614cc5575090565b905090565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111614d0a5779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90614d4443613947565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80614d6a85613cce565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610f1f57614d9a92614fdf565b9091565b90614da843613947565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80614dce85613cce565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610f1f57614d9a92614fdf565b614e0743613947565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80614e4d7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d02613cce565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610f1f57614d9a917fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d02614fdf565b614ea5613aea565b8051908115614eb5576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100548015614ee25790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b614f0f613bfb565b8051908115614f1f576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101548015614ee25790565b80546801000000000000000081101561311357614f6e91600182018155614a1a565b614fb35781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b8054929392919082156151465761500b615006614ffb8561320d565b835f5260205f200190565b614a5c565b9065ffffffffffff615023835165ffffffffffff1690565b818516918291161161511e576150cf94602094889261505661504b875165ffffffffffff1690565b65ffffffffffff1690565b036150d357506150ae9261506c6150779261320d565b905f5260205f200190565b9065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b015179ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b9190565b915050615119916150f36150e5613159565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff881682860152614f4c565b6150ae565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b61517d92506151566150e5613159565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152614f4c565b5f919056fea164736f6c634300081a000a