Overview ERC721
Total Supply:
135 GoldenSmol

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

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

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No

Created At:
Mon, 25 Jul 2022 09:04:06 GMT
GoldenSmol.sol
GoldenSmol.sol
GoldenSmol.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_payments",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "_notRevealedURI",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "royaltiesAddress",
        "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": "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": [],
    "name": "PRICE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "WHITELISTED_PRICE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "addressMintedBalance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "_users",
        "type": "address[]"
      },
      {
        "internalType": "uint256[]",
        "name": "_numberOfTokensPerAddress",
        "type": "uint256[]"
      }
    ],
    "name": "airdropTokens",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "dropFinished",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "dropForGoldenFlowHolders",
    "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": "_user",
        "type": "address"
      }
    ],
    "name": "isWhitelisted",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_user",
        "type": "address"
      }
    ],
    "name": "isWhitelistedGoldenFlow",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_mintAmount",
        "type": "uint256"
      }
    ],
    "name": "mintOwner",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "nftPerAddressLimit",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "notRevealedURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "onlyWhitelisted",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ownerMinted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "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": "bool",
        "name": "_newPause",
        "type": "bool"
      }
    ],
    "name": "pause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "payments",
    "outputs": [
      {
        "internalType": "address payable",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_state",
        "type": "bool"
      }
    ],
    "name": "reveal",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "revealed",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "royaltiesAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "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": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_mintAmount",
        "type": "uint256"
      }
    ],
    "name": "safeMint",
    "outputs": [],
    "stateMutability": "payable",
    "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": "uint256",
        "name": "_newCost",
        "type": "uint256"
      }
    ],
    "name": "setCost",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newMaxMintAmount",
        "type": "uint256"
      }
    ],
    "name": "setMaxMintAmount",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_limit",
        "type": "uint256"
      }
    ],
    "name": "setNftPerAddressLimit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_notRevealedURI",
        "type": "string"
      }
    ],
    "name": "setNotRevealedURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_onlyWhiteListed",
        "type": "bool"
      }
    ],
    "name": "setOnlyWhiteListed",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_newURI",
        "type": "string"
      }
    ],
    "name": "setURI",
    "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"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "_users",
        "type": "address[]"
      },
      {
        "internalType": "uint256[]",
        "name": "_numberOfTokensPerAddress",
        "type": "uint256[]"
      }
    ],
    "name": "whitelistGoldenFlowUsers",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "_users",
        "type": "address[]"
      }
    ],
    "name": "whitelistUsers",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  }
]


Contract Creation Code
60806040526108a2600d5560d2600e556000600f556005601055600a601155670de0b6b3a76400006012556706f05b59d3b200006013556000601660006101000a81548160ff0219169083151502179055506000601660016101000a81548160ff0219169083151502179055506000601660026101000a81548160ff0219169083151502179055506001601660036101000a81548160ff0219169083151502179055506007601755348015620000b457600080fd5b5060405162005d4538038062005d458339818101604052810190620000da9190620004ab565b6040518060400160405280600b81526020017f476f6c64656e20536d6f6c0000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f476f6c64656e536d6f6c0000000000000000000000000000000000000000000081525081600090805190602001906200015e92919062000366565b5080600190805190602001906200017792919062000366565b5050506200019a6200018e6200025460201b60201c565b6200025c60201b60201c565b8160159080519060200190620001b292919062000366565b50620001c9816200032260201b620021d21760201c565b80601660046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620006f8565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8280546200037490620005ef565b90600052602060002090601f016020900481019282620003985760008555620003e4565b82601f10620003b357805160ff1916838001178555620003e4565b82800160010185558215620003e4579182015b82811115620003e3578251825591602001919060010190620003c6565b5b509050620003f39190620003f7565b5090565b5b8082111562000412576000816000905550600101620003f8565b5090565b60006200042d62000427846200054f565b62000526565b9050828152602081018484840111156200044c576200044b620006be565b5b62000459848285620005b9565b509392505050565b6000815190506200047281620006de565b92915050565b600082601f83011262000490576200048f620006b9565b5b8151620004a284826020860162000416565b91505092915050565b600080600060608486031215620004c757620004c6620006c8565b5b6000620004d78682870162000461565b935050602084015167ffffffffffffffff811115620004fb57620004fa620006c3565b5b620005098682870162000478565b92505060406200051c8682870162000461565b9150509250925092565b60006200053262000545565b905062000540828262000625565b919050565b6000604051905090565b600067ffffffffffffffff8211156200056d576200056c6200068a565b5b6200057882620006cd565b9050602081019050919050565b6000620005928262000599565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620005d9578082015181840152602081019050620005bc565b83811115620005e9576000848401525b50505050565b600060028204905060018216806200060857607f821691505b602082108114156200061f576200061e6200065b565b5b50919050565b6200063082620006cd565b810181811067ffffffffffffffff821117156200065257620006516200068a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620006e98162000585565b8114620006f557600080fd5b50565b61563d80620007086000396000f3fe6080604052600436106102e45760003560e01c80636352211e11610190578063a1448194116100dc578063c87b56dd11610095578063edec5f271161006f578063edec5f2714610b2f578063f14c21c014610b58578063f2c4ce1e14610b83578063f2fde38b14610bac576102e4565b8063c87b56dd14610a8c578063d0eb26b014610ac9578063e985e9c514610af2576102e4565b8063a14481941461099f578063a22cb465146109bb578063a6d23e10146109e4578063b032837814610a0f578063b88d4fde14610a38578063ba7d2c7614610a61576102e4565b806372250380116101495780638da5cb5b116101235780638da5cb5b146108f5578063940cd05b1461092057806395d89b41146109495780639c70b51214610974576102e4565b806372250380146108625780637b7296201461088d5780638d859f3e146108ca576102e4565b80636352211e146107685780636852225d146107a55780636a0b5359146107ce578063706f6937146107e557806370a082311461080e578063715018a61461084b576102e4565b80632a55205a1161024f578063408cbf941161020857806344a0d68a116101e257806344a0d68a146106ac5780634f6ccce7146106d557806351830227146107125780635c975abb1461073d576102e4565b8063408cbf941461063157806342842e0e1461065a57806342966c6814610683576102e4565b80632a55205a146105195780632f745c5914610557578063328825351461059457806332cb6b0c146105bf5780633af32abf146105ea5780633ccfd60b14610627576102e4565b8063095ea7b3116102a1578063095ea7b3146104095780630bf7a62714610432578063111d5ad81461045d57806318160ddd1461048857806318cae269146104b357806323b872dd146104f0576102e4565b806301ffc9a7146102e957806302329a291461032657806302fe53051461034f57806306fdde0314610378578063081812fc146103a3578063088a4ed0146103e0575b600080fd5b3480156102f557600080fd5b50610310600480360381019061030b9190613eb4565b610bd5565b60405161031d919061461c565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190613e87565b610be7565b005b34801561035b57600080fd5b5061037660048036038101906103719190613f0e565b610c0c565b005b34801561038457600080fd5b5061038d610c2a565b60405161039a9190614637565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c59190613fa4565b610cbc565b6040516103d79190614571565b60405180910390f35b3480156103ec57600080fd5b5061040760048036038101906104029190613fa4565b610d02565b005b34801561041557600080fd5b50610430600480360381019061042b9190613d79565b610d14565b005b34801561043e57600080fd5b50610447610e2c565b60405161045491906149f9565b60405180910390f35b34801561046957600080fd5b50610472610e32565b60405161047f919061461c565b60405180910390f35b34801561049457600080fd5b5061049d610e45565b6040516104aa91906149f9565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190613bf6565b610e52565b6040516104e791906149f9565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190613c63565b610e6a565b005b34801561052557600080fd5b50610540600480360381019061053b9190613fd1565b610eca565b60405161054e9291906145f3565b60405180910390f35b34801561056357600080fd5b5061057e60048036038101906105799190613d79565b610f15565b60405161058b91906149f9565b60405180910390f35b3480156105a057600080fd5b506105a9610fba565b6040516105b69190614571565b60405180910390f35b3480156105cb57600080fd5b506105d4610fe0565b6040516105e191906149f9565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190613bf6565b610fe6565b60405161061e919061461c565b60405180910390f35b61062f611095565b005b34801561063d57600080fd5b5061065860048036038101906106539190613d79565b611138565b005b34801561066657600080fd5b50610681600480360381019061067c9190613c63565b6112e6565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190613fa4565b611306565b005b3480156106b857600080fd5b506106d360048036038101906106ce9190613fa4565b611362565b005b3480156106e157600080fd5b506106fc60048036038101906106f79190613fa4565b611393565b60405161070991906149f9565b60405180910390f35b34801561071e57600080fd5b50610727611404565b604051610734919061461c565b60405180910390f35b34801561074957600080fd5b50610752611417565b60405161075f919061461c565b60405180910390f35b34801561077457600080fd5b5061078f600480360381019061078a9190613fa4565b61142a565b60405161079c9190614571565b60405180910390f35b3480156107b157600080fd5b506107cc60048036038101906107c79190613e06565b6114dc565b005b3480156107da57600080fd5b506107e361152a565b005b3480156107f157600080fd5b5061080c60048036038101906108079190613e06565b6116c4565b005b34801561081a57600080fd5b5061083560048036038101906108309190613bf6565b61178a565b60405161084291906149f9565b60405180910390f35b34801561085757600080fd5b50610860611842565b005b34801561086e57600080fd5b50610877611856565b6040516108849190614637565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af9190613bf6565b6118e4565b6040516108c1919061461c565b60405180910390f35b3480156108d657600080fd5b506108df611993565b6040516108ec91906149f9565b60405180910390f35b34801561090157600080fd5b5061090a611999565b6040516109179190614571565b60405180910390f35b34801561092c57600080fd5b5061094760048036038101906109429190613e87565b6119c3565b005b34801561095557600080fd5b5061095e6119e8565b60405161096b9190614637565b60405180910390f35b34801561098057600080fd5b50610989611a7a565b604051610996919061461c565b60405180910390f35b6109b960048036038101906109b49190613d79565b611a8d565b005b3480156109c757600080fd5b506109e260048036038101906109dd9190613d39565b611e76565b005b3480156109f057600080fd5b506109f9611e8c565b604051610a06919061458c565b60405180910390f35b348015610a1b57600080fd5b50610a366004803603810190610a319190613e87565b611eb2565b005b348015610a4457600080fd5b50610a5f6004803603810190610a5a9190613cb6565b611ed7565b005b348015610a6d57600080fd5b50610a76611f39565b604051610a8391906149f9565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613fa4565b611f3f565b604051610ac09190614637565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613fa4565b612054565b005b348015610afe57600080fd5b50610b196004803603810190610b149190613c23565b612066565b604051610b26919061461c565b60405180910390f35b348015610b3b57600080fd5b50610b566004803603810190610b519190613db9565b6120fa565b005b348015610b6457600080fd5b50610b6d612126565b604051610b7a91906149f9565b60405180910390f35b348015610b8f57600080fd5b50610baa6004803603810190610ba59190613f5b565b61212c565b005b348015610bb857600080fd5b50610bd36004803603810190610bce9190613bf6565b61214e565b005b6000610be082612216565b9050919050565b610bef612277565b80601660006101000a81548160ff02191690831515021790555050565b610c14612277565b818160149190610c25929190613753565b505050565b606060008054610c3990614cc6565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6590614cc6565b8015610cb25780601f10610c8757610100808354040283529160200191610cb2565b820191906000526020600020905b815481529060010190602001808311610c9557829003601f168201915b5050505050905090565b6000610cc7826122f5565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610d0a612277565b8060118190555050565b6000610d1f8261142a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d87906148f9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610daf612340565b73ffffffffffffffffffffffffffffffffffffffff161480610dde5750610ddd81610dd8612340565b612066565b5b610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490614819565b60405180910390fd5b610e278383612348565b505050565b600f5481565b601660029054906101000a900460ff1681565b6000600880549050905090565b60186020528060005260406000206000915090505481565b610e7b610e75612340565b82612401565b610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb1906149b9565b60405180910390fd5b610ec5838383612496565b505050565b600080601660049054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460175485610f009190614b70565b610f0a9190614b3f565b915091509250929050565b6000610f208361178a565b8210610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890614679565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600080600090505b601b8054905081101561108a578273ffffffffffffffffffffffffffffffffffffffff16601b828154811061102657611025614e5f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611077576001915050611090565b808061108290614d29565b915050610fee565b50600090505b919050565b61109d612277565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516110e59061455c565b60006040518083038185875af1925050503d8060008114611122576040519150601f19603f3d011682016040523d82523d6000602084013e611127565b606091505b505090508061113557600080fd5b50565b611140612277565b600061114a610e45565b90506000821161118f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118690614799565b60405180910390fd5b600e54600f54836111a09190614ae9565b11156111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890614919565b60405180910390fd5b600d5482826111f09190614ae9565b1115611231576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611228906147b9565b60405180910390fd5b600e54600f541115611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f906147f9565b60405180910390fd5b6000600190505b8281116112e0576000611292600c6126fd565b905061129e600c61270b565b6112b4856001836112af9190614ae9565b612721565b600f60008154809291906112c790614d29565b91905055505080806112d890614d29565b91505061127f565b50505050565b61130183838360405180602001604052806000815250611ed7565b505050565b611317611311612340565b82612401565b611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d906149b9565b60405180910390fd5b61135f8161273f565b50565b61136a612277565b606481670de0b6b3a76400006113809190614b70565b61138a9190614b3f565b60128190555050565b600061139d610e45565b82106113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590614979565b60405180910390fd5b600882815481106113f2576113f1614e5f565b5b90600052602060002001549050919050565b601660019054906101000a900460ff1681565b601660009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906148d9565b60405180910390fd5b80915050919050565b6114e4612277565b601a60006114f291906137d9565b601c600061150091906137fa565b8383601a919061151192919061381b565b508181601c91906115239291906138bb565b5050505050565b611532612277565b60001515601660029054906101000a900460ff16151514611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90614939565b60405180910390fd5b6000601a80549050116115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c790614899565b60405180910390fd5b6000601a80549050905060005b818110156116a5576000600190505b601c8281548110611600576115ff614e5f565b5b9060005260206000200154811161169157600061161d600c6126fd565b9050611629600c61270b565b61167d601a84815481106116405761163f614e5f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001836116789190614ae9565b612721565b50808061168990614d29565b9150506115ec565b50808061169d90614d29565b9150506115dd565b506001601660026101000a81548160ff02191690831515021790555050565b6116cc612277565b60008484905011611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990614899565b60405180910390fd5b600084849050905060005b818110156117825761176f86868381811061173b5761173a614e5f565b5b90506020020160208101906117509190613bf6565b85858481811061176357611762614e5f565b5b90506020020135611138565b808061177a90614d29565b91505061171d565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f2906147d9565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61184a612277565b611854600061285c565b565b6015805461186390614cc6565b80601f016020809104026020016040519081016040528092919081815260200182805461188f90614cc6565b80156118dc5780601f106118b1576101008083540402835291602001916118dc565b820191906000526020600020905b8154815290600101906020018083116118bf57829003601f168201915b505050505081565b600080600090505b601a80549050811015611988578273ffffffffffffffffffffffffffffffffffffffff16601a828154811061192457611923614e5f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561197557600191505061198e565b808061198090614d29565b9150506118ec565b50600090505b919050565b60125481565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6119cb612277565b80601660016101000a81548160ff02191690831515021790555050565b6060600180546119f790614cc6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2390614cc6565b8015611a705780601f10611a4557610100808354040283529160200191611a70565b820191906000526020600020905b815481529060010190602001808311611a5357829003601f168201915b5050505050905090565b601660039054906101000a900460ff1681565b601660009054906101000a900460ff1615611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad4906149d9565b60405180910390fd5b6000611ae7610e45565b905060008211611b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2390614799565b60405180910390fd5b600d548282611b3b9190614ae9565b1115611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390614999565b60405180910390fd5b6107d0600f5482611b8d9190614bca565b1115611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590614879565b60405180910390fd5b601154821115611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a90614719565b60405180910390fd5b6000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506010548382611c669190614ae9565b1115611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90614739565b60405180910390fd5b600060125414611dca5760011515601660039054906101000a900460ff1615151415611d7957611cd6336118e4565b80611ce65750611ce533610fe6565b5b611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c906148b9565b60405180910390fd5b82601354611d339190614b70565b3414611d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6b90614659565b60405180910390fd5b611dc9565b82601254611d879190614b70565b3414611dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbf90614959565b60405180910390fd5b5b5b6000600190505b838111611e6f57601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611e2890614d29565b91905055506000611e39600c6126fd565b9050611e45600c61270b565b611e5b86600183611e569190614ae9565b612721565b508080611e6790614d29565b915050611dd1565b5050505050565b611e88611e81612340565b8383612922565b5050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611eba612277565b80601660036101000a81548160ff02191690831515021790555050565b611ee8611ee2612340565b83612401565b611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e906149b9565b60405180910390fd5b611f3384848484612a8f565b50505050565b60105481565b606060001515601660019054906101000a900460ff1615151415611fef5760158054611f6a90614cc6565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9690614cc6565b8015611fe35780601f10611fb857610100808354040283529160200191611fe3565b820191906000526020600020905b815481529060010190602001808311611fc657829003601f168201915b5050505050905061204f565b6000611ff9612aeb565b90506000815111612019576040518060200160405280600081525061204b565b612021612aeb565b61202a84612b7d565b60405160200161203b92919061452d565b6040516020818303038152906040525b9150505b919050565b61205c612277565b8060108190555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612102612277565b601b600061211091906137d9565b8181601b919061212192919061381b565b505050565b60135481565b612134612277565b806015908051906020019061214a929190613908565b5050565b612156612277565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd906146b9565b60405180910390fd5b6121cf8161285c565b50565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612270575061226f82612cde565b5b9050919050565b61227f612340565b73ffffffffffffffffffffffffffffffffffffffff1661229d611999565b73ffffffffffffffffffffffffffffffffffffffff16146122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea90614859565b60405180910390fd5b565b6122fe81612d58565b61233d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612334906148d9565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166123bb8361142a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061240d8361142a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061244f575061244e8185612066565b5b8061248d57508373ffffffffffffffffffffffffffffffffffffffff1661247584610cbc565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166124b68261142a565b73ffffffffffffffffffffffffffffffffffffffff161461250c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612503906146d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561257c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257390614759565b60405180910390fd5b612587838383612dc4565b612592600082612348565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125e29190614bca565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126399190614ae9565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126f8838383612dd4565b505050565b600081600001549050919050565b6001816000016000828254019250508190555050565b61273b828260405180602001604052806000815250612de4565b5050565b600061274a8261142a565b905061275881600084612dc4565b612763600083612348565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127b39190614bca565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461285881600084612dd4565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298890614779565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a82919061461c565b60405180910390a3505050565b612a9a848484612496565b612aa684848484612e3f565b612ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adc90614699565b60405180910390fd5b50505050565b606060148054612afa90614cc6565b80601f0160208091040260200160405190810160405280929190818152602001828054612b2690614cc6565b8015612b735780601f10612b4857610100808354040283529160200191612b73565b820191906000526020600020905b815481529060010190602001808311612b5657829003601f168201915b5050505050905090565b60606000821415612bc5576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612cd9565b600082905060005b60008214612bf7578080612be090614d29565b915050600a82612bf09190614b3f565b9150612bcd565b60008167ffffffffffffffff811115612c1357612c12614e8e565b5b6040519080825280601f01601f191660200182016040528015612c455781602001600182028036833780820191505090505b5090505b60008514612cd257600182612c5e9190614bca565b9150600a85612c6d9190614d72565b6030612c799190614ae9565b60f81b818381518110612c8f57612c8e614e5f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612ccb9190614b3f565b9450612c49565b8093505050505b919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612d515750612d5082612fd6565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b612dcf8383836130b8565b505050565b612ddf8383836130c8565b505050565b612dee83836130cd565b612dfb6000848484612e3f565b612e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3190614699565b60405180910390fd5b505050565b6000612e608473ffffffffffffffffffffffffffffffffffffffff166132a7565b15612fc9578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612e89612340565b8786866040518563ffffffff1660e01b8152600401612eab94939291906145a7565b602060405180830381600087803b158015612ec557600080fd5b505af1925050508015612ef657506040513d601f19601f82011682018060405250810190612ef39190613ee1565b60015b612f79573d8060008114612f26576040519150601f19603f3d011682016040523d82523d6000602084013e612f2b565b606091505b50600081511415612f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6890614699565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612fce565b600190505b949350505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806130a157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806130b157506130b0826132ca565b5b9050919050565b6130c3838383613334565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561313d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313490614839565b60405180910390fd5b61314681612d58565b15613186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317d906146f9565b60405180910390fd5b61319260008383612dc4565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131e29190614ae9565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46132a360008383612dd4565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61333f838383613448565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133825761337d8161344d565b6133c1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146133c0576133bf8382613496565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613404576133ff81613603565b613443565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146134425761344182826136d4565b5b5b505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016134a38461178a565b6134ad9190614bca565b9050600060076000848152602001908152602001600020549050818114613592576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506136179190614bca565b905060006009600084815260200190815260200160002054905060006008838154811061364757613646614e5f565b5b90600052602060002001549050806008838154811061366957613668614e5f565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806136b8576136b7614e30565b5b6001900381819060005260206000200160009055905550505050565b60006136df8361178a565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b82805461375f90614cc6565b90600052602060002090601f01602090048101928261378157600085556137c8565b82601f1061379a57803560ff19168380011785556137c8565b828001600101855582156137c8579182015b828111156137c75782358255916020019190600101906137ac565b5b5090506137d5919061398e565b5090565b50805460008255906000526020600020908101906137f7919061398e565b50565b5080546000825590600052602060002090810190613818919061398e565b50565b8280548282559060005260206000209081019282156138aa579160200282015b828111156138a957823573ffffffffffffffffffffffffffffffffffffffff168260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061383b565b5b5090506138b7919061398e565b5090565b8280548282559060005260206000209081019282156138f7579160200282015b828111156138f65782358255916020019190600101906138db565b5b509050613904919061398e565b5090565b82805461391490614cc6565b90600052602060002090601f016020900481019282613936576000855561397d565b82601f1061394f57805160ff191683800117855561397d565b8280016001018555821561397d579182015b8281111561397c578251825591602001919060010190613961565b5b50905061398a919061398e565b5090565b5b808211156139a757600081600090555060010161398f565b5090565b60006139be6139b984614a39565b614a14565b9050828152602081018484840111156139da576139d9614ecc565b5b6139e5848285614c84565b509392505050565b6000613a006139fb84614a6a565b614a14565b905082815260208101848484011115613a1c57613a1b614ecc565b5b613a27848285614c84565b509392505050565b600081359050613a3e816155ab565b92915050565b60008083601f840112613a5a57613a59614ec2565b5b8235905067ffffffffffffffff811115613a7757613a76614ebd565b5b602083019150836020820283011115613a9357613a92614ec7565b5b9250929050565b60008083601f840112613ab057613aaf614ec2565b5b8235905067ffffffffffffffff811115613acd57613acc614ebd565b5b602083019150836020820283011115613ae957613ae8614ec7565b5b9250929050565b600081359050613aff816155c2565b92915050565b600081359050613b14816155d9565b92915050565b600081519050613b29816155d9565b92915050565b600082601f830112613b4457613b43614ec2565b5b8135613b548482602086016139ab565b91505092915050565b60008083601f840112613b7357613b72614ec2565b5b8235905067ffffffffffffffff811115613b9057613b8f614ebd565b5b602083019150836001820283011115613bac57613bab614ec7565b5b9250929050565b600082601f830112613bc857613bc7614ec2565b5b8135613bd88482602086016139ed565b91505092915050565b600081359050613bf0816155f0565b92915050565b600060208284031215613c0c57613c0b614ed6565b5b6000613c1a84828501613a2f565b91505092915050565b60008060408385031215613c3a57613c39614ed6565b5b6000613c4885828601613a2f565b9250506020613c5985828601613a2f565b9150509250929050565b600080600060608486031215613c7c57613c7b614ed6565b5b6000613c8a86828701613a2f565b9350506020613c9b86828701613a2f565b9250506040613cac86828701613be1565b9150509250925092565b60008060008060808587031215613cd057613ccf614ed6565b5b6000613cde87828801613a2f565b9450506020613cef87828801613a2f565b9350506040613d0087828801613be1565b925050606085013567ffffffffffffffff811115613d2157613d20614ed1565b5b613d2d87828801613b2f565b91505092959194509250565b60008060408385031215613d5057613d4f614ed6565b5b6000613d5e85828601613a2f565b9250506020613d6f85828601613af0565b9150509250929050565b60008060408385031215613d9057613d8f614ed6565b5b6000613d9e85828601613a2f565b9250506020613daf85828601613be1565b9150509250929050565b60008060208385031215613dd057613dcf614ed6565b5b600083013567ffffffffffffffff811115613dee57613ded614ed1565b5b613dfa85828601613a44565b92509250509250929050565b60008060008060408587031215613e2057613e1f614ed6565b5b600085013567ffffffffffffffff811115613e3e57613e3d614ed1565b5b613e4a87828801613a44565b9450945050602085013567ffffffffffffffff811115613e6d57613e6c614ed1565b5b613e7987828801613a9a565b925092505092959194509250565b600060208284031215613e9d57613e9c614ed6565b5b6000613eab84828501613af0565b91505092915050565b600060208284031215613eca57613ec9614ed6565b5b6000613ed884828501613b05565b91505092915050565b600060208284031215613ef757613ef6614ed6565b5b6000613f0584828501613b1a565b91505092915050565b60008060208385031215613f2557613f24614ed6565b5b600083013567ffffffffffffffff811115613f4357613f42614ed1565b5b613f4f85828601613b5d565b92509250509250929050565b600060208284031215613f7157613f70614ed6565b5b600082013567ffffffffffffffff811115613f8f57613f8e614ed1565b5b613f9b84828501613bb3565b91505092915050565b600060208284031215613fba57613fb9614ed6565b5b6000613fc884828501613be1565b91505092915050565b60008060408385031215613fe857613fe7614ed6565b5b6000613ff685828601613be1565b925050602061400785828601613be1565b9150509250929050565b61401a81614c10565b82525050565b61402981614bfe565b82525050565b61403881614c22565b82525050565b600061404982614a9b565b6140538185614ab1565b9350614063818560208601614c93565b61406c81614edb565b840191505092915050565b600061408282614aa6565b61408c8185614acd565b935061409c818560208601614c93565b6140a581614edb565b840191505092915050565b60006140bb82614aa6565b6140c58185614ade565b93506140d5818560208601614c93565b80840191505092915050565b60006140ee601283614acd565b91506140f982614eec565b602082019050919050565b6000614111602b83614acd565b915061411c82614f15565b604082019050919050565b6000614134603283614acd565b915061413f82614f64565b604082019050919050565b6000614157602683614acd565b915061416282614fb3565b604082019050919050565b600061417a602583614acd565b915061418582615002565b604082019050919050565b600061419d601c83614acd565b91506141a882615051565b602082019050919050565b60006141c0602183614acd565b91506141cb8261507a565b604082019050919050565b60006141e3601c83614acd565b91506141ee826150c9565b602082019050919050565b6000614206602483614acd565b9150614211826150f2565b604082019050919050565b6000614229601983614acd565b915061423482615141565b602082019050919050565b600061424c601a83614acd565b91506142578261516a565b602082019050919050565b600061426f601983614acd565b915061427a82615193565b602082019050919050565b6000614292602983614acd565b915061429d826151bc565b604082019050919050565b60006142b5601f83614acd565b91506142c08261520b565b602082019050919050565b60006142d8603e83614acd565b91506142e382615234565b604082019050919050565b60006142fb602083614acd565b915061430682615283565b602082019050919050565b600061431e600583614ade565b9150614329826152ac565b600582019050919050565b6000614341602083614acd565b915061434c826152d5565b602082019050919050565b6000614364601883614acd565b915061436f826152fe565b602082019050919050565b6000614387601e83614acd565b915061439282615327565b602082019050919050565b60006143aa604083614acd565b91506143b582615350565b604082019050919050565b60006143cd601883614acd565b91506143d88261539f565b602082019050919050565b60006143f0602183614acd565b91506143fb826153c8565b604082019050919050565b6000614413602483614acd565b915061441e82615417565b604082019050919050565b6000614436601e83614acd565b915061444182615466565b602082019050919050565b6000614459600083614ac2565b91506144648261548f565b600082019050919050565b600061447c601283614acd565b915061448782615492565b602082019050919050565b600061449f602c83614acd565b91506144aa826154bb565b604082019050919050565b60006144c2601d83614acd565b91506144cd8261550a565b602082019050919050565b60006144e5602e83614acd565b91506144f082615533565b604082019050919050565b6000614508600f83614acd565b915061451382615582565b602082019050919050565b61452781614c7a565b82525050565b600061453982856140b0565b915061454582846140b0565b915061455082614311565b91508190509392505050565b60006145678261444c565b9150819050919050565b60006020820190506145866000830184614020565b92915050565b60006020820190506145a16000830184614011565b92915050565b60006080820190506145bc6000830187614020565b6145c96020830186614020565b6145d6604083018561451e565b81810360608301526145e8818461403e565b905095945050505050565b60006040820190506146086000830185614020565b614615602083018461451e565b9392505050565b6000602082019050614631600083018461402f565b92915050565b600060208201905081810360008301526146518184614077565b905092915050565b60006020820190508181036000830152614672816140e1565b9050919050565b6000602082019050818103600083015261469281614104565b9050919050565b600060208201905081810360008301526146b281614127565b9050919050565b600060208201905081810360008301526146d28161414a565b9050919050565b600060208201905081810360008301526146f28161416d565b9050919050565b6000602082019050818103600083015261471281614190565b9050919050565b60006020820190508181036000830152614732816141b3565b9050919050565b60006020820190508181036000830152614752816141d6565b9050919050565b60006020820190508181036000830152614772816141f9565b9050919050565b600060208201905081810360008301526147928161421c565b9050919050565b600060208201905081810360008301526147b28161423f565b9050919050565b600060208201905081810360008301526147d281614262565b9050919050565b600060208201905081810360008301526147f281614285565b9050919050565b60006020820190508181036000830152614812816142a8565b9050919050565b60006020820190508181036000830152614832816142cb565b9050919050565b60006020820190508181036000830152614852816142ee565b9050919050565b6000602082019050818103600083015261487281614334565b9050919050565b6000602082019050818103600083015261489281614357565b9050919050565b600060208201905081810360008301526148b28161437a565b9050919050565b600060208201905081810360008301526148d28161439d565b9050919050565b600060208201905081810360008301526148f2816143c0565b9050919050565b60006020820190508181036000830152614912816143e3565b9050919050565b6000602082019050818103600083015261493281614406565b9050919050565b6000602082019050818103600083015261495281614429565b9050919050565b600060208201905081810360008301526149728161446f565b9050919050565b6000602082019050818103600083015261499281614492565b9050919050565b600060208201905081810360008301526149b2816144b5565b9050919050565b600060208201905081810360008301526149d2816144d8565b9050919050565b600060208201905081810360008301526149f2816144fb565b9050919050565b6000602082019050614a0e600083018461451e565b92915050565b6000614a1e614a2f565b9050614a2a8282614cf8565b919050565b6000604051905090565b600067ffffffffffffffff821115614a5457614a53614e8e565b5b614a5d82614edb565b9050602081019050919050565b600067ffffffffffffffff821115614a8557614a84614e8e565b5b614a8e82614edb565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614af482614c7a565b9150614aff83614c7a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614b3457614b33614da3565b5b828201905092915050565b6000614b4a82614c7a565b9150614b5583614c7a565b925082614b6557614b64614dd2565b5b828204905092915050565b6000614b7b82614c7a565b9150614b8683614c7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bbf57614bbe614da3565b5b828202905092915050565b6000614bd582614c7a565b9150614be083614c7a565b925082821015614bf357614bf2614da3565b5b828203905092915050565b6000614c0982614c5a565b9050919050565b6000614c1b82614c5a565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015614cb1578082015181840152602081019050614c96565b83811115614cc0576000848401525b50505050565b60006002820490506001821680614cde57607f821691505b60208210811415614cf257614cf1614e01565b5b50919050565b614d0182614edb565b810181811067ffffffffffffffff82111715614d2057614d1f614e8e565b5b80604052505050565b6000614d3482614c7a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614d6757614d66614da3565b5b600182019050919050565b6000614d7d82614c7a565b9150614d8883614c7a565b925082614d9857614d97614dd2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f506c656173652070726f7669646520302e350000000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f576f756c6420657863656564206d6178206d696e74207065722073657373696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b7f6d6178204e465420706572206164647265737320657863656564656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4d696e7420416d6f756e74206973206c657373207468616e2030000000000000600082015250565b7f576f756c642045786365656420546f74616c20546f6b656e7300000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f616c7265616479206d696e74656420616c6c206f776e657220746f6b656e7300600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f416c6c206d696e746564206f757420666f722075736572730000000000000000600082015250565b7f506c656173652057686974656c69737420686f6c646572732066697273740000600082015250565b7f596f75206469646e27742067657420736e617073686f74206f6e2031352e303760008201527f2e32303232206f7220796f7520617265206e6f742077686974656c6973746564602082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e7420616d6f756e742069732067726561746572207468616e206d61782060008201527f6d696e7400000000000000000000000000000000000000000000000000000000602082015250565b7f4e465427732068617320616c7265616479206265656e2064726f707065640000600082015250565b50565b7f696e73756666696369656e742066756e64730000000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f576f756c642045786365656420546f74616c204e465420416d6f756e74000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f436f6e7472616374205061757365640000000000000000000000000000000000600082015250565b6155b481614bfe565b81146155bf57600080fd5b50565b6155cb81614c22565b81146155d657600080fd5b50565b6155e281614c2e565b81146155ed57600080fd5b50565b6155f981614c7a565b811461560457600080fd5b5056fea264697066735822122015e020b2dab6f6b28467ce13fe033cc5ca7a2ca933b1839682a5ffd88979668464736f6c634300080700330000000000000000000000006186f24f30f9f2475bbe752e54ed3390f2eccae1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000024240a43b5051a21a1acc3834f47a2645de6e46e0000000000000000000000000000000000000000000000000000000000000043697066733a2f2f6261666b72656963726666716e656f797971777a767137776b6f696472697133347234346f72777963337a77636c3761716b337469726a356e68612f0000000000000000000000000000000000000000000000000000000000