Overview ERC721
Total Supply:
80 CRAFTA

Holders:
54
Profile Summary
Blockchain:
C-Chain (43114)

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

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Created At:
Tue, 16 Aug 2022 08:18:56 GMT
CraftersAnimals.sol
contracts
CraftersAnimals.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "nftName",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "nftSymbol",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "baseTokenURI",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "_royaltyRecipient",
        "type": "address"
      },
      {
        "internalType": "bytes32",
        "name": "_merkleRoot",
        "type": "bytes32"
      },
      {
        "internalType": "uint256",
        "name": "_startAt",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_WLstartAt",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "approved",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "_id",
        "type": "uint256"
      }
    ],
    "name": "Claim",
    "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": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "stateMutability": "payable",
    "type": "fallback"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_whitelistedAddress",
        "type": "address"
      }
    ],
    "name": "EarlyMinterMinted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_EARLY_CLAIM",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_MINTABLE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_PER_CLAIM",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_PUBLIC_CLAIM",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MintIsOpen",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "NFT_PRICE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ROYALTY_VALUE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "WLstartAt",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "n",
        "type": "uint256"
      }
    ],
    "name": "claim",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "n",
        "type": "uint256"
      },
      {
        "internalType": "bytes32[]",
        "name": "_proof",
        "type": "bytes32[]"
      }
    ],
    "name": "earlyClaim",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_whitelistedAddress",
        "type": "address"
      },
      {
        "internalType": "bytes32[]",
        "name": "_proof",
        "type": "bytes32[]"
      }
    ],
    "name": "isEarlyMinter",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "merkleRoot",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "ownerOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "n",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "premint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "publicMintedAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_addressToWhitelist",
        "type": "address"
      }
    ],
    "name": "removeEarlyUser",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "royaltyAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "_data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "_addr",
        "type": "address[]"
      }
    ],
    "name": "setAdmins",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "uri",
        "type": "string"
      }
    ],
    "name": "setBaseUri",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      },
      {
        "internalType": "uint256",
        "name": "allowedToMint",
        "type": "uint256"
      }
    ],
    "name": "setEarlyMinters",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "_root",
        "type": "bytes32"
      }
    ],
    "name": "setMerkleRoot",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_royaltyRecipient",
        "type": "address"
      }
    ],
    "name": "setRoyaltyAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_startAt",
        "type": "uint256"
      }
    ],
    "name": "setStartAt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_WLstartAt",
        "type": "uint256"
      }
    ],
    "name": "setWLstartAt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "startAt",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "toggleMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenOfOwnerByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60a06040819052600060808190526200001b916012916200014f565b50600160138190556014805460ff1916909117905560006015553480156200004257600080fd5b5060405162003748380380620037488339810160408190526200006591620002a8565b8651879087906200007e9060009060208501906200014f565b508051620000949060019060208401906200014f565b505050620000b1620000ab620000f960201b60201c565b620000fd565b601680546001600160a01b0319166001600160a01b0386161790558451620000e19060129060208801906200014f565b50600e92909255600c55600d5550620003c892505050565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200015d9062000375565b90600052602060002090601f016020900481019282620001815760008555620001cc565b82601f106200019c57805160ff1916838001178555620001cc565b82800160010185558215620001cc579182015b82811115620001cc578251825591602001919060010190620001af565b50620001da929150620001de565b5090565b5b80821115620001da5760008155600101620001df565b600082601f83011262000206578081fd5b81516001600160401b0380821115620002235762000223620003b2565b604051601f8301601f19908116603f011681019082821181831017156200024e576200024e620003b2565b816040528381526020925086838588010111156200026a578485fd5b8491505b838210156200028d57858201830151818301840152908201906200026e565b838211156200029e57848385830101525b9695505050505050565b600080600080600080600060e0888a031215620002c3578283fd5b87516001600160401b0380821115620002da578485fd5b620002e88b838c01620001f5565b985060208a0151915080821115620002fe578485fd5b6200030c8b838c01620001f5565b975060408a015191508082111562000322578485fd5b50620003318a828b01620001f5565b60608a015190965090506001600160a01b038116811462000350578384fd5b809450506080880151925060a0880151915060c0880151905092959891949750929550565b6002810460018216806200038a57607f821691505b60208210811415620003ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61337080620003d86000396000f3fe60806040526004361061028c5760003560e01c80636b907eba1161015a578063a60118e8116100c1578063e985e9c51161007a578063e985e9c514610738578063ead29d4e14610758578063f2c64ad21461035a578063f2fde38b14610778578063f3a133a914610798578063fc68e62d146107b857610293565b8063a60118e81461068e578063accc1d5e146106ae578063b88d4fde146106ce578063c7446565146106ee578063c87b56dd14610703578063d3dd5fe01461072357610293565b80638da5cb5b116101135780638da5cb5b146105fa57806393791b031461060f57806395d89b4114610624578063a0bcfc7f14610639578063a22cb46514610659578063a28cf7721461067957610293565b80636b907eba146105505780636d68b20b1461056557806370a0823114610585578063715018a6146105a55780637cb64759146105ba57806386063f71146105da57610293565b80632f745c59116101fe5780634f02c420116101b75780634f02c420146104b15780634f6ccce7146104c6578063538dba3e146104e65780635471f49f146105065780636352211e1461051b578063676dd5631461053b57610293565b80632f745c5914610414578063379607f5146104345780633ccfd60b146104475780633f879faf1461045c57806340b898061461047157806342842e0e1461049157610293565b806315147aee1161025057806315147aee1461035a57806318160ddd1461037c5780631b4f7f351461039157806323b872dd146103b15780632a55205a146103d15780632eb4a7ab146103ff57610293565b806301ffc9a71461029557806306d254da146102cb57806306fdde03146102eb578063081812fc1461030d578063095ea7b31461033a57610293565b3661029357005b005b3480156102a157600080fd5b506102b56102b036600461279a565b6107d8565b6040516102c2919061297e565b60405180910390f35b3480156102d757600080fd5b506102936102e6366004612544565b6107eb565b3480156102f757600080fd5b50610300610855565b6040516102c29190612992565b34801561031957600080fd5b5061032d610328366004612782565b6108e7565b6040516102c29190612914565b34801561034657600080fd5b506102936103553660046126cf565b61092a565b34801561036657600080fd5b5061036f6109c2565b6040516102c29190612989565b34801561038857600080fd5b5061036f6109c7565b34801561039d57600080fd5b506102b56103ac366004612644565b6109cd565b3480156103bd57600080fd5b506102936103cc366004612590565b610a43565b3480156103dd57600080fd5b506103f16103ec36600461286b565b610a7b565b6040516102c2929190612965565b34801561040b57600080fd5b5061036f610ad9565b34801561042057600080fd5b5061036f61042f3660046126cf565b610adf565b610293610442366004612782565b610b31565b34801561045357600080fd5b50610293610df0565b34801561046857600080fd5b5061036f610e9d565b34801561047d57600080fd5b5061029361048c366004612544565b610ea2565b34801561049d57600080fd5b506102936104ac366004612590565b610efb565b3480156104bd57600080fd5b5061036f610f16565b3480156104d257600080fd5b5061036f6104e1366004612782565b610f1c565b3480156104f257600080fd5b50610293610501366004612818565b610f77565b34801561051257600080fd5b5061036f611080565b34801561052757600080fd5b5061032d610536366004612782565b611085565b34801561054757600080fd5b5061036f6110ba565b34801561055c57600080fd5b506102b56110c6565b34801561057157600080fd5b50610293610580366004612782565b6110cf565b34801561059157600080fd5b5061036f6105a0366004612544565b611113565b3480156105b157600080fd5b50610293611157565b3480156105c657600080fd5b506102936105d5366004612782565b6111a2565b3480156105e657600080fd5b506102936105f536600461283a565b6111e6565b34801561060657600080fd5b5061032d611465565b34801561061b57600080fd5b5061036f611474565b34801561063057600080fd5b5061030061147a565b34801561064557600080fd5b506102936106543660046127d2565b611489565b34801561066557600080fd5b50610293610674366004612695565b6114df565b34801561068557600080fd5b5061036f6114f1565b34801561069a57600080fd5b5061036f6106a9366004612544565b6114f7565b3480156106ba57600080fd5b506102936106c93660046126f8565b611512565b3480156106da57600080fd5b506102936106e93660046125cb565b6115d1565b3480156106fa57600080fd5b5061036f61160a565b34801561070f57600080fd5b5061030061071e366004612782565b611610565b34801561072f57600080fd5b50610293611693565b34801561074457600080fd5b506102b561075336600461255e565b6116e6565b34801561076457600080fd5b5061036f610773366004612544565b611714565b34801561078457600080fd5b50610293610793366004612544565b611726565b3480156107a457600080fd5b506102936107b3366004612782565b611794565b3480156107c457600080fd5b506102936107d3366004612738565b6117d8565b60006107e382611888565b90505b919050565b6107f36118ad565b6001600160a01b0316610804611465565b6001600160a01b0316146108335760405162461bcd60e51b815260040161082a90612fa4565b60405180910390fd5b601680546001600160a01b0319166001600160a01b0392909216919091179055565b60606000805461086490613278565b80601f016020809104026020016040519081016040528092919081815260200182805461089090613278565b80156108dd5780601f106108b2576101008083540402835291602001916108dd565b820191906000526020600020905b8154815290600101906020018083116108c057829003601f168201915b5050505050905090565b60006108f2826118b1565b61090e5760405162461bcd60e51b815260040161082a90612f58565b506000908152600460205260409020546001600160a01b031690565b600061093582611085565b9050806001600160a01b0316836001600160a01b031614156109695760405162461bcd60e51b815260040161082a906130ae565b806001600160a01b031661097b6118ad565b6001600160a01b031614806109975750610997816107536118ad565b6109b35760405162461bcd60e51b815260040161082a90612d77565b6109bd83836118ce565b505050565b600181565b60085490565b600080846040516020016109e191906128b8565b604051602081830303815290604052805190602001209050610a3a84848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600e54915084905061193c565b95945050505050565b610a54610a4e6118ad565b82611952565b610a705760405162461bcd60e51b815260040161082a906130ef565b6109bd8383836119d7565b6000828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b90910462ffffff16928201839052929161271090610ac59086613216565b610acf9190613202565b9150509250929050565b600e5481565b6000610aea83611113565b8210610b085760405162461bcd60e51b815260040161082a90612a84565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60145460ff16610b535760405162461bcd60e51b815260040161082a90612a13565b600c54421015610b755760405162461bcd60e51b815260040161082a9061318c565b6050610b7f6109c7565b610b8990836131ea565b1115610ba75760405162461bcd60e51b815260040161082a906129a5565b60008111610bc75760405162461bcd60e51b815260040161082a90612d10565b600a811115610be85760405162461bcd60e51b815260040161082a90612e67565b610bfa81671bc16d674ec80000613216565b341015610c195760405162461bcd60e51b815260040161082a90612ea9565b33600090815260106020526040902054600111610c485760405162461bcd60e51b815260040161082a906131b5565b33600090815260106020526040902054600190610c6590836131ea565b1115610c835760405162461bcd60e51b815260040161082a90612f21565b3360009081526010602052604081208054839290610ca29084906131ea565b9091555060009050610cbc82671bc16d674ec80000613216565b90508060156000828254610cd091906131ea565b9091555060009050610ce28234613235565b604051909150309083156108fc029084906000818181858888f19350505050158015610d12573d6000803e3d6000fd5b5060005b83811015610da357610d31610d296118ad565b601354611b0a565b601354601654610d4d91906001600160a01b03166105dc611b24565b600160136000828254610d6091906131ea565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a280610d9b816132b3565b915050610d16565b5080156109bd57610db26118ad565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610dea573d6000803e3d6000fd5b50505050565b60116000610dfc6118ad565b6001600160a01b0316815260208101919091526040016000205460ff161515600114610e3a5760405162461bcd60e51b815260040161082a90612d47565b60004711610e5a5760405162461bcd60e51b815260040161082a90612a57565b610e626118ad565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610e9a573d6000803e3d6000fd5b50565b605081565b610eaa6118ad565b6001600160a01b0316610ebb611465565b6001600160a01b031614610ee15760405162461bcd60e51b815260040161082a90612fa4565b6001600160a01b03166000908152600f6020526040812055565b6109bd838383604051806020016040528060008152506115d1565b60135481565b6000610f266109c7565b8210610f445760405162461bcd60e51b815260040161082a90613140565b60088281548110610f6557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610f7f6118ad565b6001600160a01b0316610f90611465565b6001600160a01b031614610fb65760405162461bcd60e51b815260040161082a90612fa4565b60008211610fd65760405162461bcd60e51b815260040161082a90612d10565b600a821115610ff75760405162461bcd60e51b815260040161082a90612e67565b60005b828110156109bd5761100e82601354611b0a565b60135460165461102a91906001600160a01b03166105dc611b24565b60016013600082825461103d91906131ea565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a280611078816132b3565b915050610ffa565b600a81565b6000818152600260205260408120546001600160a01b0316806107e35760405162461bcd60e51b815260040161082a90612e1e565b671bc16d674ec8000081565b60145460ff1681565b6110d76118ad565b6001600160a01b03166110e8611465565b6001600160a01b03161461110e5760405162461bcd60e51b815260040161082a90612fa4565b600d55565b60006001600160a01b03821661113b5760405162461bcd60e51b815260040161082a90612dd4565b506001600160a01b031660009081526003602052604090205490565b61115f6118ad565b6001600160a01b0316611170611465565b6001600160a01b0316146111965760405162461bcd60e51b815260040161082a90612fa4565b6111a06000611ba6565b565b6111aa6118ad565b6001600160a01b03166111bb611465565b6001600160a01b0316146111e15760405162461bcd60e51b815260040161082a90612fa4565b600e55565b60145460ff166112085760405162461bcd60e51b815260040161082a90612a13565b600d5442101561122a5760405162461bcd60e51b815260040161082a9061318c565b600c54421061124b5760405162461bcd60e51b815260040161082a90613010565b60506112556109c7565b61125f90856131ea565b111561127d5760405162461bcd60e51b815260040161082a906129a5565b600a83111561129e5760405162461bcd60e51b815260040161082a90612e67565b336000908152600f6020526040902054600110156112ce5760405162461bcd60e51b815260040161082a90612be3565b6000336040516020016112e191906128b8565b60405160208183030381529060405280519060200120905061133a83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600e54915084905061193c565b6113565760405162461bcd60e51b815260040161082a90612c95565b600084116113765760405162461bcd60e51b815260040161082a90612d10565b336000908152600f602052604090205460019061139390866131ea565b11156113b15760405162461bcd60e51b815260040161082a90612fd9565b336000908152600f6020526040812080548692906113d09084906131ea565b90915550600090505b8481101561145e576113ec610d296118ad565b60135460165461140891906001600160a01b03166105dc611b24565b60016013600082825461141b91906131ea565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a280611456816132b3565b9150506113d9565b5050505050565b600a546001600160a01b031690565b6105dc81565b60606001805461086490613278565b6114916118ad565b6001600160a01b03166114a2611465565b6001600160a01b0316146114c85760405162461bcd60e51b815260040161082a90612fa4565b80516114db9060129060208401906123d5565b5050565b6114db6114ea6118ad565b8383611bf8565b600d5481565b6001600160a01b03166000908152600f602052604090205490565b61151a6118ad565b6001600160a01b031661152b611465565b6001600160a01b0316146115515760405162461bcd60e51b815260040161082a90612fa4565b60005b818110156109bd5760016011600085858581811061158257634e487b7160e01b600052603260045260246000fd5b90506020020160208101906115979190612544565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806115c9816132b3565b915050611554565b6115e26115dc6118ad565b83611952565b6115fe5760405162461bcd60e51b815260040161082a906130ef565b610dea84848484611c9b565b600c5481565b606061161b826118b1565b6116375760405162461bcd60e51b815260040161082a9061305f565b6000611641611cce565b90506000815111611661576040518060200160405280600081525061168c565b8061166b84611cdd565b60405160200161167c9291906128d5565b6040516020818303038152906040525b9392505050565b61169b6118ad565b6001600160a01b03166116ac611465565b6001600160a01b0316146116d25760405162461bcd60e51b815260040161082a90612fa4565b6014805460ff19811660ff90911615179055565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60106020526000908152604090205481565b61172e6118ad565b6001600160a01b031661173f611465565b6001600160a01b0316146117655760405162461bcd60e51b815260040161082a90612fa4565b6001600160a01b03811661178b5760405162461bcd60e51b815260040161082a90612b21565b610e9a81611ba6565b61179c6118ad565b6001600160a01b03166117ad611465565b6001600160a01b0316146117d35760405162461bcd60e51b815260040161082a90612fa4565b600c55565b6117e06118ad565b6001600160a01b03166117f1611465565b6001600160a01b0316146118175760405162461bcd60e51b815260040161082a90612fa4565b60005b82811015610dea5781600f600086868581811061184757634e487b7160e01b600052603260045260246000fd5b905060200201602081019061185c9190612544565b6001600160a01b0316815260208101919091526040016000205580611880816132b3565b91505061181a565b60006001600160e01b0319821663152a902d60e11b14806107e357506107e382611df8565b3390565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061190382611085565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000826119498584611e1d565b14949350505050565b600061195d826118b1565b6119795760405162461bcd60e51b815260040161082a90612cc4565b600061198483611085565b9050806001600160a01b0316846001600160a01b031614806119ab57506119ab81856116e6565b806119cf5750836001600160a01b03166119c4846108e7565b6001600160a01b0316145b949350505050565b826001600160a01b03166119ea82611085565b6001600160a01b031614611a105760405162461bcd60e51b815260040161082a90612b67565b6001600160a01b038216611a365760405162461bcd60e51b815260040161082a90612c1a565b611a41838383611e97565b611a4c6000826118ce565b6001600160a01b0383166000908152600360205260408120805460019290611a75908490613235565b90915550506001600160a01b0382166000908152600360205260408120805460019290611aa39084906131ea565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a46109bd8383836109bd565b6114db828260405180602001604052806000815250611ea2565b612710811115611b465760405162461bcd60e51b815260040161082a906129dc565b6040805180820182526001600160a01b03938416815262ffffff92831660208083019182526000968752600b905291909420935184549151909216600160a01b0262ffffff60a01b19929093166001600160a01b03199091161716179055565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415611c2a5760405162461bcd60e51b815260040161082a90612c5e565b6001600160a01b0383811660008181526005602090815260408083209487168084529490915290819020805460ff1916851515179055517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190611c8e90859061297e565b60405180910390a3505050565b611ca68484846119d7565b611cb284848484611ed5565b610dea5760405162461bcd60e51b815260040161082a90612acf565b60606012805461086490613278565b606081611d0257506040805180820190915260018152600360fc1b60208201526107e6565b8160005b8115611d2c5780611d16816132b3565b9150611d259050600a83613202565b9150611d06565b60008167ffffffffffffffff811115611d5557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611d7f576020820181803683370190505b5090505b84156119cf57611d94600183613235565b9150611da1600a866132ce565b611dac9060306131ea565b60f81b818381518110611dcf57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611df1600a86613202565b9450611d83565b60006001600160e01b0319821663780e9d6360e01b14806107e357506107e382611ff0565b600081815b8451811015611e8f576000858281518110611e4d57634e487b7160e01b600052603260045260246000fd5b60200260200101519050808311611e6f57611e688382612030565b9250611e7c565b611e798184612030565b92505b5080611e87816132b3565b915050611e22565b509392505050565b6109bd83838361203f565b611eac83836120c8565b611eb96000848484611ed5565b6109bd5760405162461bcd60e51b815260040161082a90612acf565b6000611ee9846001600160a01b03166121af565b15611fe557836001600160a01b031663150b7a02611f056118ad565b8786866040518563ffffffff1660e01b8152600401611f279493929190612928565b602060405180830381600087803b158015611f4157600080fd5b505af1925050508015611f71575060408051601f3d908101601f19168201909252611f6e918101906127b6565b60015b611fcb573d808015611f9f576040519150601f19603f3d011682016040523d82523d6000602084013e611fa4565b606091505b508051611fc35760405162461bcd60e51b815260040161082a90612acf565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506119cf565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b148061202157506001600160e01b03198216635b5e139f60e01b145b806107e357506107e3826121be565b60009182526020526040902090565b61204a8383836109bd565b6001600160a01b03831661206657612061816121d7565b612089565b816001600160a01b0316836001600160a01b03161461208957612089838261221b565b6001600160a01b0382166120a5576120a0816122b8565b6109bd565b826001600160a01b0316826001600160a01b0316146109bd576109bd8282612391565b6001600160a01b0382166120ee5760405162461bcd60e51b815260040161082a90612eec565b6120f7816118b1565b156121145760405162461bcd60e51b815260040161082a90612bac565b61212060008383611e97565b6001600160a01b03821660009081526003602052604081208054600192906121499084906131ea565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46114db600083836109bd565b6001600160a01b03163b151590565b6001600160e01b031981166301ffc9a760e01b14919050565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6000600161222884611113565b6122329190613235565b600083815260076020526040902054909150808214612285576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906122ca90600190613235565b6000838152600960205260408120546008805493945090928490811061230057634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050806008838154811061232f57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061237557634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061239c83611113565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b8280546123e190613278565b90600052602060002090601f0160209004810192826124035760008555612449565b82601f1061241c57805160ff1916838001178555612449565b82800160010185558215612449579182015b8281111561244957825182559160200191906001019061242e565b50612455929150612459565b5090565b5b80821115612455576000815560010161245a565b600067ffffffffffffffff808411156124895761248961330e565b604051601f8501601f19908116603f011681019082821181831017156124b1576124b161330e565b816040528093508581528686860111156124ca57600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b03811681146107e657600080fd5b60008083601f84011261250c578081fd5b50813567ffffffffffffffff811115612523578182fd5b602083019150836020808302850101111561253d57600080fd5b9250929050565b600060208284031215612555578081fd5b61168c826124e4565b60008060408385031215612570578081fd5b612579836124e4565b9150612587602084016124e4565b90509250929050565b6000806000606084860312156125a4578081fd5b6125ad846124e4565b92506125bb602085016124e4565b9150604084013590509250925092565b600080600080608085870312156125e0578081fd5b6125e9856124e4565b93506125f7602086016124e4565b925060408501359150606085013567ffffffffffffffff811115612619578182fd5b8501601f81018713612629578182fd5b6126388782356020840161246e565b91505092959194509250565b600080600060408486031215612658578283fd5b612661846124e4565b9250602084013567ffffffffffffffff81111561267c578283fd5b612688868287016124fb565b9497909650939450505050565b600080604083850312156126a7578182fd5b6126b0836124e4565b9150602083013580151581146126c4578182fd5b809150509250929050565b600080604083850312156126e1578182fd5b6126ea836124e4565b946020939093013593505050565b6000806020838503121561270a578182fd5b823567ffffffffffffffff811115612720578283fd5b61272c858286016124fb565b90969095509350505050565b60008060006040848603121561274c578283fd5b833567ffffffffffffffff811115612762578384fd5b61276e868287016124fb565b909790965060209590950135949350505050565b600060208284031215612793578081fd5b5035919050565b6000602082840312156127ab578081fd5b813561168c81613324565b6000602082840312156127c7578081fd5b815161168c81613324565b6000602082840312156127e3578081fd5b813567ffffffffffffffff8111156127f9578182fd5b8201601f81018413612809578182fd5b6119cf8482356020840161246e565b6000806040838503121561282a578182fd5b82359150612587602084016124e4565b60008060006040848603121561284e578081fd5b83359250602084013567ffffffffffffffff81111561267c578182fd5b6000806040838503121561287d578182fd5b50508035926020909101359150565b600081518084526128a481602086016020860161324c565b601f01601f19169290920160200192915050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b600083516128e781846020880161324c565b8351908301906128fb81836020880161324c565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061295b9083018461288c565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60006020825261168c602083018461288c565b60208082526018908201527f4e6f7420656e6f756768206c65667420746f206d696e742e0000000000000000604082015260600190565b6020808252601a908201527f45524332393831526f79616c746965733a20546f6f2068696768000000000000604082015260600190565b60208082526024908201527f49742773206e6f7420706f737369626c6520746f20636c61696d206a757374206040820152633cb2ba1760e11b606082015260800190565b6020808252601390820152724e6f7468696e6720746f20776974686472617760681b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b6020808252601d908201527f596f752063616e2774206561726c7920636c61696d20616e796d6f7265000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b60208082526015908201527424b73b30b634b21026b2b935b63290283937b7b31760591b604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252601f908201527f4e756d626572206e65656420746f20626520686967686572207468616e203000604082015260600190565b6020808252601690820152752cb7bab91030b932903737ba103a34329037bbb732b960511b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b60208082526022908201527f796f752063616e277420636c61696d2074686174206d756368206174206f756e604082015261636560f01b606082015260800190565b60208082526023908201527f45746865722076616c75652073656e742069732062656c6f772074686520707260408201526269636560e81b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526019908201527f796f752063616e277420636c61696d2074686174206d75636800000000000000604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f796f752063616e2774206561726c7920636c61696d2074686174206d75636800604082015260600190565b6020808252602f908201527f5075626c6963206d696e74206973206f70656e2c207468652077686974656c6960408201526e39ba1036b4b73a1034b99037bb32b960891b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252600f908201526e139bdd081cdd185c9d1959081e595d608a1b604082015260600190565b6020808252818101527f6578636565647320746865207075626c6963206d696e74696e67206c696d6974604082015260600190565b600082198211156131fd576131fd6132e2565b500190565b600082613211576132116132f8565b500490565b6000816000190483118215151615613230576132306132e2565b500290565b600082821015613247576132476132e2565b500390565b60005b8381101561326757818101518382015260200161324f565b83811115610dea5750506000910152565b60028104600182168061328c57607f821691505b602082108114156132ad57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156132c7576132c76132e2565b5060010190565b6000826132dd576132dd6132f8565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610e9a57600080fdfea2646970667358221220f41cbdd9c548455ee62a496dcb03a9db667e66bcaac81fa65d54b031a563c4a364736f6c6343000801003300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000007bd2186cdd36735808e32606618ea34999f4219335ec0a8dc67eafdd2f8190291c5e28b2cd48674c4754dc1f860690cdcbe048b50000000000000000000000000000000000000000000000000000000062fb43f40000000000000000000000000000000000000000000000000000000062fb40700000000000000000000000000000000000000000000000000000000000000010437261667465727320416e696d616c7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000643524146544100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d55743233684a447846377a6a516752423631467471646d364e3536503173754c5a707836396d5542376f32532f00000000000000000000