Overview ERC721
Total Supply:
18,753 ZKNFT

Holders:
1,980
Profile Summary
Blockchain:
Ethereum (1)

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

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Created At:
Tue, 13 Jul 2021 10:12:08 GMT
ERC165.sol
@openzeppelin
contracts
introspection
ERC165.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "zkSyncAddress",
        "type": "address"
      }
    ],
    "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": "address",
        "name": "creator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "creatorAccountId",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "serialId",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "contentHash",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "MintNFTFromZkSync",
    "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"
  },
  {
    "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": [],
    "name": "baseURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_tokenId",
        "type": "uint256"
      }
    ],
    "name": "getContentHash",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getCreatorAccountId",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getCreatorAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_tokenId",
        "type": "uint256"
      }
    ],
    "name": "getCreatorFingerprint",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getSerialId",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "source",
        "type": "bytes32"
      }
    ],
    "name": "ipfsCID",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "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": "creator",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint32",
        "name": "creatorAccountId",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "serialId",
        "type": "uint32"
      },
      {
        "internalType": "bytes32",
        "name": "contentHash",
        "type": "bytes32"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "mintNFTFromZkSync",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "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": "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": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": [
      {
        "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"
  }
]


Contract Creation Code
60806040523480156200001157600080fd5b506040516200238138038062002381833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060405260200151915083905082620001b86301ffc9a760e01b62000245565b8151620001cd906006906020850190620002ca565b508051620001e3906007906020840190620002ca565b50620001f66380ac58cd60e01b62000245565b62000208635b5e139f60e01b62000245565b6200021a63780e9d6360e01b62000245565b5050600c80546001600160a01b0319166001600160a01b039290921691909117905550620003769050565b6001600160e01b03198082161415620002a5576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200030257600085556200034d565b82601f106200031d57805160ff19168380011785556200034d565b828001600101855582156200034d579182015b828111156200034d57825182559160200191906001019062000330565b506200035b9291506200035f565b5090565b5b808211156200035b576000815560010162000360565b611ffb80620003866000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636352211e116100c3578063a30b4db91161007c578063a30b4db91461048e578063b88d4fde146104ab578063b90ea3ec14610571578063c87b56dd1461058e578063e985e9c5146105ab578063ffbdc8cb146105d957610158565b80636352211e146103f05780636c0360eb1461040d57806370a082311461041557806395d89b411461043b578063a1b8aa2614610443578063a22cb4651461046057610158565b806323b872dd1161011557806323b872dd146102e85780632f745c591461031e578063328c3a4a1461034a578063422b7a0d1461038057806342842e0e1461039d5780634f6ccce7146103d357610158565b806301ffc9a71461015d57806306fdde0314610198578063081812fc14610215578063095ea7b31461024e57806318160ddd1461027c578063234ce59014610296575b600080fd5b6101846004803603602081101561017357600080fd5b50356001600160e01b0319166105f6565b604080519115158252519081900360200190f35b6101a0610615565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101da5781810151838201526020016101c2565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102326004803603602081101561022b57600080fd5b50356106ab565b604080516001600160a01b039092168252519081900360200190f35b61027a6004803603604081101561026457600080fd5b506001600160a01b03813516906020013561070d565b005b6102846107e8565b60408051918252519081900360200190f35b61027a600480360360c08110156102ac57600080fd5b506001600160a01b03813581169160208101359091169063ffffffff604082013581169160608101359091169060808101359060a001356107f9565b61027a600480360360608110156102fe57600080fd5b506001600160a01b038135811691602081013590911690604001356108f2565b6102846004803603604081101561033457600080fd5b506001600160a01b038135169060200135610949565b6103676004803603602081101561036057600080fd5b5035610974565b6040805163ffffffff9092168252519081900360200190f35b6101a06004803603602081101561039657600080fd5b5035610997565b61027a600480360360608110156103b357600080fd5b506001600160a01b03813581169160208101359091169060400135610a20565b610284600480360360208110156103e957600080fd5b5035610a3b565b6102326004803603602081101561040657600080fd5b5035610a51565b6101a0610a79565b6102846004803603602081101561042b57600080fd5b50356001600160a01b0316610ada565b6101a0610b42565b6102846004803603602081101561045957600080fd5b5035610ba3565b61027a6004803603604081101561047657600080fd5b506001600160a01b0381351690602001351515610bb5565b610232600480360360208110156104a457600080fd5b5035610cba565b61027a600480360360808110156104c157600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156104fc57600080fd5b82018360208201111561050e57600080fd5b8035906020019184600183028401116401000000008311171561053057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610cd5945050505050565b6103676004803603602081101561058757600080fd5b5035610d33565b6101a0600480360360208110156105a457600080fd5b5035610d4f565b610184600480360360408110156105c157600080fd5b506001600160a01b0381358116916020013516610e8e565b610284600480360360208110156105ef57600080fd5b5035610ebc565b6001600160e01b03191660009081526020819052604090205460ff1690565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106a15780601f10610676576101008083540402835291602001916106a1565b820191906000526020600020905b81548152906001019060200180831161068457829003601f168201915b5050505050905090565b60006106b682610ece565b6106f15760405162461bcd60e51b815260040180806020018281038252602c815260200180611ee5602c913960400191505060405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061071882610a51565b9050806001600160a01b0316836001600160a01b0316141561076b5760405162461bcd60e51b8152600401808060200182810382526021815260200180611f3a6021913960400191505060405180910390fd5b806001600160a01b031661077d610edb565b6001600160a01b0316148061079e575061079e81610799610edb565b610e8e565b6107d95760405162461bcd60e51b8152600401808060200182810382526038815260200180611e386038913960400191505060405180910390fd5b6107e38383610edf565b505050565b60006107f46002610f4d565b905090565b600c546001600160a01b031661080d610edb565b6001600160a01b03161461084c576040805162461bcd60e51b81526020600482015260016024820152603d60f91b604482015290519081900360640190fd5b6108568582610f58565b6000818152600a60205260408120839055610872878686610f76565b6000838152600b6020908152604091829020839055815163ffffffff808a1682528816918101919091528082018690526060810185905290519192506001600160a01b0380891692908a16917f6f9f9796c253c64d832328af44bc2ec5e2dad7f948ee013003be6a082532a14a919081900360800190a350505050505050565b6109036108fd610edb565b82610fa5565b61093e5760405162461bcd60e51b8152600401808060200182810382526031815260200180611f5b6031913960400191505060405180910390fd5b6107e3838383611049565b6001600160a01b038216600090815260016020526040812061096b9083611195565b90505b92915050565b6000818152600b60205260408120546109908160c060e06111a1565b9392505050565b606061096e604051806040016040528060028152602001609160f51b815250836040516020018083805190602001908083835b602083106109e95780518252601f1990920191602091820191016109ca565b51815160209384036101000a6000190180199092169116179052920193845250604080518085038152939091019052509050611209565b6107e383838360405180602001604052806000815250610cd5565b600080610a4960028461134e565b509392505050565b600061096e82604051806060016040528060298152602001611e9a602991396002919061136a565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106a15780601f10610676576101008083540402835291602001916106a1565b60006001600160a01b038216610b215760405162461bcd60e51b815260040180806020018281038252602a815260200180611e70602a913960400191505060405180910390fd5b6001600160a01b038216600090815260016020526040902061096e90610f4d565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106a15780601f10610676576101008083540402835291602001916106a1565b6000908152600b602052604090205490565b610bbd610edb565b6001600160a01b0316826001600160a01b03161415610c23576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b8060056000610c30610edb565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610c74610edb565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000818152600b6020526040812054610990818360a06111a1565b610ce6610ce0610edb565b83610fa5565b610d215760405162461bcd60e51b8152600401808060200182810382526031815260200180611f5b6031913960400191505060405180910390fd5b610d2d84848484611377565b50505050565b6000818152600b60205260408120546109908160a060c06111a1565b6060610d5a82610ece565b610d90576040805162461bcd60e51b81526020600482015260026024820152616e6560f01b604482015290519081900360640190fd5b600060405180604001604052806007815260200166697066733a2f2f60c81b81525090506000610dd2600a600086815260200190815260200160002054610997565b905081816040516020018083805190602001908083835b60208310610e085780518252601f199092019160209182019101610de9565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310610e505780518252601f199092019160209182019101610e31565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050919050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000908152600a602052604090205490565b600061096e6002836113c9565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610f1482610a51565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061096e826113d5565b610f728282604051806020016040528060008152506113d9565b5050565b6001600160a01b03831663ffffffff60a01b60a084901b161763ffffffff60c01b60c083901b16179392505050565b6000610fb082610ece565b610feb5760405162461bcd60e51b815260040180806020018281038252602c815260200180611e0c602c913960400191505060405180910390fd5b6000610ff683610a51565b9050806001600160a01b0316846001600160a01b031614806110315750836001600160a01b0316611026846106ab565b6001600160a01b0316145b8061104157506110418185610e8e565b949350505050565b826001600160a01b031661105c82610a51565b6001600160a01b0316146110a15760405162461bcd60e51b8152600401808060200182810382526029815260200180611f116029913960400191505060405180910390fd5b6001600160a01b0382166110e65760405162461bcd60e51b8152600401808060200182810382526024815260200180611de86024913960400191505060405180910390fd5b6110f183838361142b565b6110fc600082610edf565b6001600160a01b038316600090815260016020526040902061111e9082611459565b506001600160a01b03821660009081526001602052604090206111419082611465565b5061114e60028284611471565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061096b8383611487565b60008261ffff168261ffff16116111e4576040805162461bcd60e51b8152602060048201526002602482015261717160f01b604482015290519081900360640190fd5b50600161ffff82811682901b60001990810191851692831b01188416901c9392505050565b60408051602e8082526105e0820190925260609160009190602082016105c08036833701905050905060008160008151811061124157fe5b60ff90921660209283029190910190910152600160005b84518160ff16101561133c576000858260ff168151811061127557fe5b016020015160f81c905060005b8360ff168163ffffffff1610156112f557848163ffffffff16815181106112a557fe5b602002602001015160ff166101000282019150603a82816112c257fe5b06858263ffffffff16815181106112d557fe5b60ff90921660209283029190910190910152603a82049150600101611282565b505b801561133357603a8106848460ff168151811061131057fe5b60ff90921660209283029190910190910152600190920191603a810490506112f7565b50600101611258565b50611041611349836114eb565b611590565b600080808061135d8686611668565b9097909650945050505050565b60006110418484846116e3565b611382848484611049565b61138e848484846117ad565b610d2d5760405162461bcd60e51b8152600401808060200182810382526032815260200180611db66032913960400191505060405180910390fd5b600061096b8383611915565b5490565b6113e3838361192d565b6113f060008484846117ad565b6107e35760405162461bcd60e51b8152600401808060200182810382526032815260200180611db66032913960400191505060405180910390fd5b6001600160a01b0382166107e3576000908152600a60209081526040808320839055600b9091528120555050565b600061096b8383611a5b565b600061096b8383611b21565b600061104184846001600160a01b038516611b6b565b815460009082106114c95760405162461bcd60e51b8152600401808060200182810382526022815260200180611d946022913960400191505060405180910390fd5b8260000182815481106114d857fe5b9060005260206000200154905092915050565b60606000825167ffffffffffffffff8111801561150757600080fd5b50604051908082528060200260200182016040528015611531578160200160208202803683370190505b50905060005b83518160ff16101561158957838160ff166001865103038151811061155857fe5b6020026020010151828260ff168151811061156f57fe5b60ff90921660209283029190910190910152600101611537565b5092915050565b60606000825167ffffffffffffffff811180156115ac57600080fd5b506040519080825280601f01601f1916602001820160405280156115d7576020820181803683370190505b50905060005b83518163ffffffff161015611589576040518060600160405280603a8152602001611f8c603a9139848263ffffffff168151811061161757fe5b602002602001015160ff168151811061162c57fe5b602001015160f81c60f81b828263ffffffff168151811061164957fe5b60200101906001600160f81b031916908160001a9053506001016115dd565b8154600090819083106116ac5760405162461bcd60e51b8152600401808060200182810382526022815260200180611ec36022913960400191505060405180910390fd5b60008460000184815481106116bd57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000828152600184016020526040812054828161177e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561174357818101518382015260200161172b565b50505050905090810190601f1680156117705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061179157fe5b9060005260206000209060020201600101549150509392505050565b60006117c1846001600160a01b0316611c02565b6117cd57506001611041565b60006118db630a85bd0160e11b6117e2610edb565b88878760405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611849578181015183820152602001611831565b50505050905090810190601f1680156118765780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051806060016040528060328152602001611db6603291396001600160a01b0388169190611c08565b905060008180602001905160208110156118f457600080fd5b50516001600160e01b031916630a85bd0160e11b1492505050949350505050565b60009081526001919091016020526040902054151590565b6001600160a01b038216611988576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61199181610ece565b156119e3576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b6119ef6000838361142b565b6001600160a01b0382166000908152600160205260409020611a119082611465565b50611a1e60028284611471565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008181526001830160205260408120548015611b175783546000198083019190810190600090879083908110611a8e57fe5b9060005260206000200154905080876000018481548110611aab57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080611adb57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061096e565b600091505061096e565b6000611b2d8383611915565b611b635750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561096e565b50600061096e565b600082815260018401602052604081205480611bd0575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610990565b82856000016001830381548110611be357fe5b9060005260206000209060020201600101819055506000915050610990565b3b151590565b6060611041848460008585611c1c85611c02565b611c6d576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310611cab5780518252601f199092019160209182019101611c8c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611d0d576040519150601f19603f3d011682016040523d82523d6000602084013e611d12565b606091505b5091509150611d22828286611d2d565b979650505050505050565b60608315611d3c575081610990565b825115611d4c5782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561174357818101518382015260200161172b56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656431323334353637383941424344454647484a4b4c4d4e505152535455565758595a6162636465666768696a6b6d6e6f707172737475767778797aa2646970667358221220b6103b2a7fe5415da31cc80a184570b504cd2ef423d8090354981005e7fc18bd64736f6c63430007060033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef000000000000000000000000000000000000000000000000000000000000001b7a6b53796e63204e465420466163746f727920436f6e7472616374000000000000000000000000000000000000000000000000000000000000000000000000055a4b4e4654000000000000000000000000000000000000000000000000000000