Overview ERC721
Total Supply:
0 MIAO

Profile Summary
Blockchain:
Fuji (43113)

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

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No

Created At:
Tue, 03 May 2022 13:24:39 GMT
PNSPM2.sol
PNSPM2.sol
PNSPM2.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "ApprovalCallerNotOwnerNorApproved",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ApprovalQueryForNonexistentToken",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ApprovalToCurrentOwner",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ApproveToCaller",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BalanceQueryForZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MintToZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MintZeroQuantity",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OwnerQueryForNonexistentToken",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferCallerNotOwnerNorApproved",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferFromIncorrectOwner",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferToNonERC721ReceiverImplementer",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferToZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "URIQueryForNonexistentToken",
    "type": "error"
  },
  {
    "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": "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"
  },
  {
    "inputs": [],
    "name": "MAX_SUPPLY",
    "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": "address[]",
        "name": "to",
        "type": "address[]"
      }
    ],
    "name": "batchMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "currentId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "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": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "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": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "safeMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalMinted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "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"
  }
]


Contract Creation Code
608060405260036009553480156200001657600080fd5b506040518060400160405280600b81526020017f4d69616f20636f64696e670000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d49414f0000000000000000000000000000000000000000000000000000000081525081600290805190602001906200009b929190620001ca565b508060039080519060200190620000b4929190620001ca565b50620000c5620000f360201b60201c565b6000819055505050620000ed620000e1620000fc60201b60201c565b6200010460201b60201c565b620002df565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001d8906200027a565b90600052602060002090601f016020900481019282620001fc576000855562000248565b82601f106200021757805160ff191683800117855562000248565b8280016001018555821562000248579182015b82811115620002475782518255916020019190600101906200022a565b5b5090506200025791906200025b565b5090565b5b80821115620002765760008160009055506001016200025c565b5090565b600060028204905060018216806200029357607f821691505b60208210811415620002aa57620002a9620002b0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6130bc80620002ef6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063b88d4fde1161007c578063b88d4fde14610378578063c87b56dd14610394578063d67b06c1146103c4578063e00dd161146103e0578063e985e9c5146103fe578063f2fde38b1461042e5761014d565b806370a08231146102c8578063715018a6146102f85780638da5cb5b1461030257806395d89b4114610320578063a22cb4651461033e578063a2309ff81461035a5761014d565b806323b872dd1161011557806323b872dd1461020a57806332cb6b0c1461022657806340d097c31461024457806342842e0e1461026057806342966c681461027c5780636352211e146102985761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d057806318160ddd146101ec575b600080fd5b61016c6004803603810190610167919061288d565b61044a565b6040516101799190612acc565b60405180910390f35b61018a61052c565b6040516101979190612ae7565b60405180910390f35b6101ba60048036038101906101b591906128df565b6105be565b6040516101c79190612a65565b60405180910390f35b6101ea60048036038101906101e59190612810565b61063a565b005b6101f4610745565b6040516102019190612b69565b60405180910390f35b610224600480360381019061021f919061270a565b61075c565b005b61022e61076c565b60405161023b9190612b69565b60405180910390f35b61025e600480360381019061025991906126a5565b610772565b005b61027a6004803603810190610275919061270a565b610847565b005b610296600480360381019061029191906128df565b610867565b005b6102b260048036038101906102ad91906128df565b610875565b6040516102bf9190612a65565b60405180910390f35b6102e260048036038101906102dd91906126a5565b61088b565b6040516102ef9190612b69565b60405180910390f35b61030061095b565b005b61030a6109e3565b6040516103179190612a65565b60405180910390f35b610328610a0d565b6040516103359190612ae7565b60405180910390f35b610358600480360381019061035391906127d4565b610a9f565b005b610362610c17565b60405161036f9190612b69565b60405180910390f35b610392600480360381019061038d9190612759565b610c26565b005b6103ae60048036038101906103a991906128df565b610ca2565b6040516103bb9190612ae7565b60405180910390f35b6103de60048036038101906103d9919061284c565b610d41565b005b6103e8610e83565b6040516103f59190612b69565b60405180910390f35b610418600480360381019061041391906126ce565b610e8c565b6040516104259190612acc565b60405180910390f35b610448600480360381019061044391906126a5565b610f20565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061051557507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610525575061052482611018565b5b9050919050565b60606002805461053b90612dba565b80601f016020809104026020016040519081016040528092919081815260200182805461056790612dba565b80156105b45780601f10610589576101008083540402835291602001916105b4565b820191906000526020600020905b81548152906001019060200180831161059757829003601f168201915b5050505050905090565b60006105c982611082565b6105ff576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061064582610875565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106ad576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106cc6110d0565b73ffffffffffffffffffffffffffffffffffffffff16141580156106fe57506106fc816106f76110d0565b610e8c565b155b15610735576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107408383836110d8565b505050565b600061074f61118a565b6001546000540303905090565b610767838383611193565b505050565b60095481565b61077a6110d0565b73ffffffffffffffffffffffffffffffffffffffff166107986109e3565b73ffffffffffffffffffffffffffffffffffffffff16146107ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e590612b49565b60405180910390fd5b6009546107f9611649565b10610839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083090612b29565b60405180910390fd5b61084481600161165c565b50565b61086283838360405180602001604052806000815250610c26565b505050565b61087281600161167a565b50565b600061088082611a6a565b600001519050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108f3576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b6109636110d0565b73ffffffffffffffffffffffffffffffffffffffff166109816109e3565b73ffffffffffffffffffffffffffffffffffffffff16146109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce90612b49565b60405180910390fd5b6109e16000611cf9565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610a1c90612dba565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4890612dba565b8015610a955780601f10610a6a57610100808354040283529160200191610a95565b820191906000526020600020905b815481529060010190602001808311610a7857829003601f168201915b5050505050905090565b610aa76110d0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b0c576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000610b196110d0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bc66110d0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c0b9190612acc565b60405180910390a35050565b6000610c21611649565b905090565b610c31848484611193565b610c508373ffffffffffffffffffffffffffffffffffffffff16611dbf565b8015610c655750610c6384848484611de2565b155b15610c9c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6060610cad82611082565b610ce3576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ced611f42565b9050600081511415610d0e5760405180602001604052806000815250610d39565b80610d1884611f62565b604051602001610d29929190612a41565b6040516020818303038152906040525b915050919050565b610d496110d0565b73ffffffffffffffffffffffffffffffffffffffff16610d676109e3565b73ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612b49565b60405180910390fd5b6009548151610dca611649565b610dd49190612c49565b1115610e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0c90612b29565b60405180910390fd5b60005b8151811015610e7f57610e6c828281518110610e5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600161165c565b8080610e7790612e1d565b915050610e18565b5050565b60008054905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f286110d0565b73ffffffffffffffffffffffffffffffffffffffff16610f466109e3565b73ffffffffffffffffffffffffffffffffffffffff1614610f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9390612b49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612b09565b60405180910390fd5b61101581611cf9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008161108d61118a565b1115801561109c575060005482105b80156110c9575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b600061119e82611a6a565b90508373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611209576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff1661122a6110d0565b73ffffffffffffffffffffffffffffffffffffffff1614806112595750611258856112536110d0565b610e8c565b5b8061129e57506112676110d0565b73ffffffffffffffffffffffffffffffffffffffff16611286846105be565b73ffffffffffffffffffffffffffffffffffffffff16145b9050806112d7576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561133e576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61134b858585600161210f565b611357600084876110d8565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600460008581526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060006001850190506000600460008381526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115d75760005482146115d657878160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602001518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b505050828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46116428585856001612115565b5050505050565b600061165361118a565b60005403905090565b61167682826040518060200160405280600081525061211b565b5050565b600061168583611a6a565b905060008160000151905082156117665760008173ffffffffffffffffffffffffffffffffffffffff166116b76110d0565b73ffffffffffffffffffffffffffffffffffffffff1614806116e657506116e5826116e06110d0565b610e8c565b5b8061172b57506116f46110d0565b73ffffffffffffffffffffffffffffffffffffffff16611713866105be565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611764576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b61177481600086600161210f565b611780600085836110d8565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060018160000160108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600460008781526020019081526020016000209050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600181600001601c6101000a81548160ff02191690831515021790555060006001870190506000600460008381526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119e45760005482146119e357848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085602001518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b5050505083600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a52816000866001612115565b60016000815480929190600101919050555050505050565b611a726124fb565b600082905080611a8061118a565b11158015611a8f575060005481105b15611cc2576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff16151515158152505090508060400151611cc057600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611ba4578092505050611cf4565b5b600115611cbf57818060019003925050600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611cba578092505050611cf4565b611ba5565b5b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611e086110d0565b8786866040518563ffffffff1660e01b8152600401611e2a9493929190612a80565b602060405180830381600087803b158015611e4457600080fd5b505af1925050508015611e7557506040513d601f19601f82011682018060405250810190611e7291906128b6565b60015b611eef573d8060008114611ea5576040519150601f19603f3d011682016040523d82523d6000602084013e611eaa565b606091505b50600081511415611ee7576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060405180606001604052806025815260200161306260259139905090565b60606000821415611faa576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061210a565b600082905060005b60008214611fdc578080611fc590612e1d565b915050600a82611fd59190612c9f565b9150611fb2565b60008167ffffffffffffffff81111561201e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156120505781602001600182028036833780820191505090505b5090505b60008514612103576001826120699190612cd0565b9150600a856120789190612e66565b60306120849190612c49565b60f81b8183815181106120c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856120fc9190612c9f565b9450612054565b8093505050505b919050565b50505050565b50505050565b612128838383600161212d565b505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561219a576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008414156121d5576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121e2600086838761210f565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000819050600085820190508380156123ac57506123ab8773ffffffffffffffffffffffffffffffffffffffff16611dbf565b5b15612472575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46124216000888480600101955088611de2565b612457576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808214156123b257826000541461246d57600080fd5b6124de565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480821415612473575b8160008190555050506124f46000868387612115565b5050505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b600061255161254c84612ba9565b612b84565b9050808382526020820190508285602086028201111561257057600080fd5b60005b858110156125a0578161258688826125e8565b845260208401935060208301925050600181019050612573565b5050509392505050565b60006125bd6125b884612bd5565b612b84565b9050828152602081018484840111156125d557600080fd5b6125e0848285612d78565b509392505050565b6000813590506125f781613005565b92915050565b600082601f83011261260e57600080fd5b813561261e84826020860161253e565b91505092915050565b6000813590506126368161301c565b92915050565b60008135905061264b81613033565b92915050565b60008151905061266081613033565b92915050565b600082601f83011261267757600080fd5b81356126878482602086016125aa565b91505092915050565b60008135905061269f8161304a565b92915050565b6000602082840312156126b757600080fd5b60006126c5848285016125e8565b91505092915050565b600080604083850312156126e157600080fd5b60006126ef858286016125e8565b9250506020612700858286016125e8565b9150509250929050565b60008060006060848603121561271f57600080fd5b600061272d868287016125e8565b935050602061273e868287016125e8565b925050604061274f86828701612690565b9150509250925092565b6000806000806080858703121561276f57600080fd5b600061277d878288016125e8565b945050602061278e878288016125e8565b935050604061279f87828801612690565b925050606085013567ffffffffffffffff8111156127bc57600080fd5b6127c887828801612666565b91505092959194509250565b600080604083850312156127e757600080fd5b60006127f5858286016125e8565b925050602061280685828601612627565b9150509250929050565b6000806040838503121561282357600080fd5b6000612831858286016125e8565b925050602061284285828601612690565b9150509250929050565b60006020828403121561285e57600080fd5b600082013567ffffffffffffffff81111561287857600080fd5b612884848285016125fd565b91505092915050565b60006020828403121561289f57600080fd5b60006128ad8482850161263c565b91505092915050565b6000602082840312156128c857600080fd5b60006128d684828501612651565b91505092915050565b6000602082840312156128f157600080fd5b60006128ff84828501612690565b91505092915050565b61291181612d04565b82525050565b61292081612d16565b82525050565b600061293182612c06565b61293b8185612c1c565b935061294b818560208601612d87565b61295481612f53565b840191505092915050565b600061296a82612c11565b6129748185612c2d565b9350612984818560208601612d87565b61298d81612f53565b840191505092915050565b60006129a382612c11565b6129ad8185612c3e565b93506129bd818560208601612d87565b80840191505092915050565b60006129d6602683612c2d565b91506129e182612f64565b604082019050919050565b60006129f9601583612c2d565b9150612a0482612fb3565b602082019050919050565b6000612a1c602083612c2d565b9150612a2782612fdc565b602082019050919050565b612a3b81612d6e565b82525050565b6000612a4d8285612998565b9150612a598284612998565b91508190509392505050565b6000602082019050612a7a6000830184612908565b92915050565b6000608082019050612a956000830187612908565b612aa26020830186612908565b612aaf6040830185612a32565b8181036060830152612ac18184612926565b905095945050505050565b6000602082019050612ae16000830184612917565b92915050565b60006020820190508181036000830152612b01818461295f565b905092915050565b60006020820190508181036000830152612b22816129c9565b9050919050565b60006020820190508181036000830152612b42816129ec565b9050919050565b60006020820190508181036000830152612b6281612a0f565b9050919050565b6000602082019050612b7e6000830184612a32565b92915050565b6000612b8e612b9f565b9050612b9a8282612dec565b919050565b6000604051905090565b600067ffffffffffffffff821115612bc457612bc3612f24565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612bf057612bef612f24565b5b612bf982612f53565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612c5482612d6e565b9150612c5f83612d6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c9457612c93612e97565b5b828201905092915050565b6000612caa82612d6e565b9150612cb583612d6e565b925082612cc557612cc4612ec6565b5b828204905092915050565b6000612cdb82612d6e565b9150612ce683612d6e565b925082821015612cf957612cf8612e97565b5b828203905092915050565b6000612d0f82612d4e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612da5578082015181840152602081019050612d8a565b83811115612db4576000848401525b50505050565b60006002820490506001821680612dd257607f821691505b60208210811415612de657612de5612ef5565b5b50919050565b612df582612f53565b810181811067ffffffffffffffff82111715612e1457612e13612f24565b5b80604052505050565b6000612e2882612d6e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612e5b57612e5a612e97565b5b600182019050919050565b6000612e7182612d6e565b9150612e7c83612d6e565b925082612e8c57612e8b612ec6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f457863656564206d6178696d756d20737570706c790000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b61300e81612d04565b811461301957600080fd5b50565b61302581612d16565b811461303057600080fd5b50565b61303c81612d22565b811461304757600080fd5b50565b61305381612d6e565b811461305e57600080fd5b5056fe687474703a2f2f6c69616f6c696261722e636f6d3a333033302f6e66742d6173736574732fa26469706673582212207aa0e18a2dc421279b4a8eedaf08137b8ad4235d26d7723f7d5fc8b7b4761be664736f6c63430008040033