/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import type { Provider, TransactionRequest } from "@ethersproject/providers";
import type { UAP, UAPInterface } from "../UAP";

const _abi = [
  {
    type: "constructor",
    inputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "adminWallet",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "allowance",
    inputs: [
      {
        name: "owner",
        type: "address",
        internalType: "address",
      },
      {
        name: "spender",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "alreadyClaimedTeamAdvisorTokenAmount",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "approve",
    inputs: [
      {
        name: "spender",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "balanceOf",
    inputs: [
      {
        name: "account",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "burn",
    inputs: [
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "burnFrom",
    inputs: [
      {
        name: "account",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "claimUnlockedTeamAdvisorTokenAmount",
    inputs: [],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "configureBot",
    inputs: [
      {
        name: "bot",
        type: "address",
        internalType: "address",
      },
      {
        name: "isBot",
        type: "bool",
        internalType: "bool",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "configurePairs",
    inputs: [
      {
        name: "_pair",
        type: "address",
        internalType: "address",
      },
      {
        name: "_isPair",
        type: "bool",
        internalType: "bool",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "decimals",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint8",
        internalType: "uint8",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "decreaseAllowance",
    inputs: [
      {
        name: "spender",
        type: "address",
        internalType: "address",
      },
      {
        name: "subtractedValue",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "developmentFund",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "ecosystemGrowth",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "gameReward",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "getUnlockedTeamAdvisorTokenAmount",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "increaseAllowance",
    inputs: [
      {
        name: "spender",
        type: "address",
        internalType: "address",
      },
      {
        name: "addedValue",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "initialize",
    inputs: [
      {
        name: "_admin",
        type: "address",
        internalType: "address",
      },
      {
        name: "_taxWallet",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "initializeTime",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "isPair",
    inputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "liquidityTrading",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "liquidityWallet",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "name",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "string",
        internalType: "string",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "owner",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "renounceOwnership",
    inputs: [],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "sellTaxPercentage",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "setup",
    inputs: [],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "symbol",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "string",
        internalType: "string",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "taxWallet",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "teamAdvisor",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "teamAdvisorWallet",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "totalSupply",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "transfer",
    inputs: [
      {
        name: "to",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "transferFrom",
    inputs: [
      {
        name: "from",
        type: "address",
        internalType: "address",
      },
      {
        name: "to",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "transferOwnership",
    inputs: [
      {
        name: "newOwner",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "updateTax",
    inputs: [
      {
        name: "_sellTaxPercentage",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "updateTaxWallet",
    inputs: [
      {
        name: "_taxWallet",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "event",
    name: "Approval",
    inputs: [
      {
        name: "owner",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "spender",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "value",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "ConfigureBot",
    inputs: [
      {
        name: "pair",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "isBot",
        type: "bool",
        indexed: false,
        internalType: "bool",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "ConfigurePair",
    inputs: [
      {
        name: "pair",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "isPair",
        type: "bool",
        indexed: false,
        internalType: "bool",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "Initialized",
    inputs: [
      {
        name: "version",
        type: "uint8",
        indexed: false,
        internalType: "uint8",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "OwnershipTransferred",
    inputs: [
      {
        name: "previousOwner",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "newOwner",
        type: "address",
        indexed: true,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "TaxTransfered",
    inputs: [
      {
        name: "from",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "taxWallet",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "tax",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "TeamAdvisorTokenClaimed",
    inputs: [
      {
        name: "to",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "Transfer",
    inputs: [
      {
        name: "from",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "to",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "value",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "UpdateTaxPercentage",
    inputs: [
      {
        name: "percentage",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "UpdateTaxWallet",
    inputs: [
      {
        name: "wallet",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "error",
    name: "AddressNotNull",
    inputs: [],
  },
  {
    type: "error",
    name: "AlreadyInitialized",
    inputs: [],
  },
  {
    type: "error",
    name: "CannotNull",
    inputs: [],
  },
  {
    type: "error",
    name: "CannotUpdateTax",
    inputs: [
      {
        name: "sellTaxPercentage",
        type: "uint256",
        internalType: "uint256",
      },
    ],
  },
] as const;

const _bytecode =
  "0x608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611980806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806379cc679011610130578063ba0bba40116100b8578063dd62ed3e1161007c578063dd62ed3e1461045e578063e5e31b1314610471578063ee2ab33214610494578063f2fde38b1461049d578063f59f4574146104b057600080fd5b8063ba0bba4014610414578063bf3308de1461041c578063c3ae700e14610425578063cca0feb614610438578063d46980161461044b57600080fd5b806395d89b41116100ff57806395d89b41146103d45780639e7d8d1d146103dc578063a457c2d7146103e5578063a9059cbb146103f8578063b079c4d71461040b57600080fd5b806379cc67901461039e5780637f4299a9146103b15780638a2381d7146103ba5780638da5cb5b146103c357600080fd5b806342966c68116101b35780636df91bbb116101825780636df91bbb1461034957806370a0823114610351578063715018a61461037a57806374c9f60314610382578063773b3a931461039557600080fd5b806342966c6814610305578063485cc9551461031a57806350a8945d1461032d5780635e4887bd1461034057600080fd5b806323b872dd116101fa57806323b872dd146102aa5780632dc0562d146102bd578063313ce567146102d057806336b19cd7146102df57806339509351146102f257600080fd5b806306fdde031461022c578063095ea7b31461024a57806318160ddd1461026d5780631a012f481461027f575b600080fd5b6102346104b8565b6040516102419190611804565b60405180910390f35b61025d6102583660046117a4565b61054a565b6040519015158152602001610241565b6035545b604051908152602001610241565b60d254610292906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b61025d6102b8366004611731565b610562565b60ca54610292906001600160a01b031681565b60405160128152602001610241565b60d054610292906001600160a01b031681565b61025d6103003660046117a4565b610586565b6103186103133660046117eb565b6105a8565b005b6103186103283660046116fe565b6105b5565b61031861033b36600461176d565b610779565b61027160d55481565b6102716107e5565b61027161035f3660046116dc565b6001600160a01b031660009081526033602052604090205490565b61031861083a565b6103186103903660046116dc565b61084e565b61027160cd5481565b6103186103ac3660046117a4565b6108d2565b61027160cc5481565b61027160cf5481565b6097546001600160a01b0316610292565b6102346108eb565b61027160c95481565b61025d6103f33660046117a4565b6108fa565b61025d6104063660046117a4565b610975565b61027160d65481565b610318610983565b61027160cb5481565b61031861043336600461176d565b610a76565b6103186104463660046117eb565b610b01565b60d154610292906001600160a01b031681565b61027161046c3660046116fe565b610b63565b61025d61047f3660046116dc565b60d36020526000908152604090205460ff1681565b61027160ce5481565b6103186104ab3660046116dc565b610b8e565b610318610c04565b6060603680546104c790611914565b80601f01602080910402602001604051908101604052809291908181526020018280546104f390611914565b80156105405780601f1061051557610100808354040283529160200191610540565b820191906000526020600020905b81548152906001019060200180831161052357829003601f168201915b5050505050905090565b600033610558818585610d0a565b5060019392505050565b600033610570858285610e2e565b61057b858585610ea8565b506001949350505050565b6000336105588185856105998383610b63565b6105a391906118a4565b610d0a565b6105b23382611066565b50565b600054610100900460ff16158080156105d55750600054600160ff909116105b806105ef5750303b1580156105ef575060005460ff166001145b6106575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561067a576000805461ff0019166101001790555b6001600160a01b038316158061069757506001600160a01b038216155b156106b55760405163f8b7150760e01b815260040160405180910390fd5b6106f56040518060400160405280600381526020016205541560ec1b8152506040518060400160405280600381526020016205541560ec1b81525061119a565b6106fd6111cb565b6107056111f2565b61070e83610b8e565b60ca80546001600160a01b0319166001600160a01b038416179055600a60c9558015610774576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610781611221565b6001600160a01b038216600081815260d46020908152604091829020805460ff19168515159081179091558251938452908301527f688d32022f6d446e0bc6e798c809442a0610259fec6679c02bbbb43bd5ab1de391015b60405180910390a15050565b60008062784ce060d554426107fa91906118fd565b61080491906118bc565b9050600061081e826b087b595f2383509fe10000006118de565b905060cd54811161082f5780610833565b60cd545b9250505090565b610842611221565b61084c600061127b565b565b610856611221565b6001600160a01b03811661087d5760405163f8b7150760e01b815260040160405180910390fd5b60ca80546001600160a01b0319166001600160a01b0383169081179091556040519081527fe809fa0c811040b61000c05b031840776748942548895c25aaa593062063e700906020015b60405180910390a150565b6108dd823383610e2e565b6108e78282611066565b5050565b6060603780546104c790611914565b600033816109088286610b63565b9050838110156109685760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161064e565b61057b8286868403610d0a565b600033610558818585610ea8565b60d75460ff16156109a65760405162dc149f60e41b815260040160405180910390fd5b4260d5556c02a68bedbb190931f65000000060cb556c015345f6dd8c8498fb2800000060cc556b43dacaf91c1a84ff0800000060cd8190556bcb9060eb544f8efd1800000060ce5560cf5560d080546001600160a01b031990811673bc67629883fbdf808acbfc1fcc608b757be9d3781790915560d18054821673e73dea1340aeca4aa979438c9950ddfb28de626c17905560d280549091167320a2968eefc8c89aa7b2bb14bf76e22146d6b876179055610a5f6112cd565b610a67611331565b60d7805460ff19166001179055565b610a7e611221565b6001600160a01b038216610aa5576040516352f525d960e11b815260040160405180910390fd5b6001600160a01b038216600081815260d36020908152604091829020805460ff19168515159081179091558251938452908301527f17af727a114eccd5fb319c94971047e772ad0b00713fdf56b932d1864826088491016107d9565b610b09611221565b6064811115610b2e57604051635066767360e01b81526004810182905260240161064e565b60c98190556040518181527f4c11aaf71c678301c05b2797f5fb05e11ec872fdde924fb029b73f1489615474906020016108c7565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b610b96611221565b6001600160a01b038116610bfb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161064e565b6105b28161127b565b610c0c611221565b6000610c166107e5565b9050600060d65482610c2891906118fd565b60d05460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101829052909150309063a9059cbb90604401602060405180830381600087803b158015610c7757600080fd5b505af1158015610c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610caf91906117ce565b508060d66000828254610cc291906118a4565b909155505060d054604080516001600160a01b039092168252602082018390527facc15b433ff2864bbd0574129f1589394c1bbbbcd49a7daed63a8147522355e891016107d9565b6001600160a01b038316610d6c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064e565b6001600160a01b038216610dcd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064e565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610e3a8484610b63565b90506000198114610ea25781811015610e955760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161064e565b610ea28484848403610d0a565b50505050565b6000610ebc6097546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610eeb57506097546001600160a01b03848116911614155b15610fd1576001600160a01b038416600090815260d4602052604090205460ff16158015610f3257506001600160a01b038316600090815260d4602052604090205460ff16155b610f7e5760405162461bcd60e51b815260206004820152601f60248201527f4d616c6963696f757320426f74205472616e7366657220646574656374656400604482015260640161064e565b6001600160a01b038316600090815260d3602052604090205460ff168015610faf57506001600160a01b0384163014155b15610fd157606460c95483610fc491906118de565b610fce91906118bc565b90505b80610fe657610fe184848461133d565b610ea2565b610ffa8484610ff584866118fd565b61133d565b60ca546110129085906001600160a01b03168361133d565b60ca54604080516001600160a01b038088168252909216602083015281018290527f19f82c103043a90796cd642d0fcb4963c39de3b7509c4c11394bb0997f9112389060600160405180910390a150505050565b6001600160a01b0382166110c65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161064e565b6001600160a01b0382166000908152603360205260409020548181101561113a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161064e565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600054610100900460ff166111c15760405162461bcd60e51b815260040161064e90611859565b6108e782826114e8565b600054610100900460ff1661084c5760405162461bcd60e51b815260040161064e90611859565b600054610100900460ff166112195760405162461bcd60e51b815260040161064e90611859565b61084c611536565b6097546001600160a01b0316331461084c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064e565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60d05460cb546112e6916001600160a01b031690611566565b60d15460cc546112ff916001600160a01b031690611566565b60d05460ce54611318916001600160a01b031690611566565b60d05460cf5461084c916001600160a01b031690611566565b61084c3060cd54611566565b6001600160a01b0383166113a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064e565b6001600160a01b0382166114035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064e565b6001600160a01b0383166000908152603360205260409020548181101561147b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161064e565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114db9086815260200190565b60405180910390a3610ea2565b600054610100900460ff1661150f5760405162461bcd60e51b815260040161064e90611859565b8151611522906036906020850190611627565b508051610774906037906020840190611627565b600054610100900460ff1661155d5760405162461bcd60e51b815260040161064e90611859565b61084c3361127b565b6001600160a01b0382166115bc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161064e565b80603560008282546115ce91906118a4565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b82805461163390611914565b90600052602060002090601f016020900481019282611655576000855561169b565b82601f1061166e57805160ff191683800117855561169b565b8280016001018555821561169b579182015b8281111561169b578251825591602001919060010190611680565b506116a79291506116ab565b5090565b5b808211156116a757600081556001016116ac565b80356001600160a01b03811681146116d757600080fd5b919050565b6000602082840312156116ee57600080fd5b6116f7826116c0565b9392505050565b6000806040838503121561171157600080fd5b61171a836116c0565b9150611728602084016116c0565b90509250929050565b60008060006060848603121561174657600080fd5b61174f846116c0565b925061175d602085016116c0565b9150604084013590509250925092565b6000806040838503121561178057600080fd5b611789836116c0565b9150602083013561179981611965565b809150509250929050565b600080604083850312156117b757600080fd5b6117c0836116c0565b946020939093013593505050565b6000602082840312156117e057600080fd5b81516116f781611965565b6000602082840312156117fd57600080fd5b5035919050565b600060208083528351808285015260005b8181101561183157858101830151858201604001528201611815565b81811115611843576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082198211156118b7576118b761194f565b500190565b6000826118d957634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156118f8576118f861194f565b500290565b60008282101561190f5761190f61194f565b500390565b600181811c9082168061192857607f821691505b6020821081141561194957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80151581146105b257600080fdfea164736f6c6343000807000a";

type UAPConstructorParams =
  | [signer?: Signer]
  | ConstructorParameters<typeof ContractFactory>;

const isSuperArgs = (
  xs: UAPConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;

export class UAP__factory extends ContractFactory {
  constructor(...args: UAPConstructorParams) {
    if (isSuperArgs(args)) {
      super(...args);
    } else {
      super(_abi, _bytecode, args[0]);
    }
  }

  override deploy(overrides?: Overrides & { from?: string }): Promise<UAP> {
    return super.deploy(overrides || {}) as Promise<UAP>;
  }
  override getDeployTransaction(
    overrides?: Overrides & { from?: string }
  ): TransactionRequest {
    return super.getDeployTransaction(overrides || {});
  }
  override attach(address: string): UAP {
    return super.attach(address) as UAP;
  }
  override connect(signer: Signer): UAP__factory {
    return super.connect(signer) as UAP__factory;
  }

  static readonly bytecode = _bytecode;
  static readonly abi = _abi;
  static createInterface(): UAPInterface {
    return new utils.Interface(_abi) as UAPInterface;
  }
  static connect(address: string, signerOrProvider: Signer | Provider): UAP {
    return new Contract(address, _abi, signerOrProvider) as UAP;
  }
}
