Contract Overview
Toucans Avax404
Balance:
0 AVAX

AVAX Value:
$0.00 (@ $28.73/AVAX)

Token:
More Info
Tag:
Not Available. Update?

Contract Creators:

Token Trackers:
Contract Source Code Verified (Exact Match)
Contract Name:
Toucans

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No

Created At:
Sun, 10 Mar 2024 03:53:36 GMT
IERC721.sol
@openzeppelin
contracts
token
ERC721
IERC721.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_royaltyRecipient",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "AlreadyExists",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidOwner",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidRecipient",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidSender",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotFound",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "Unauthorized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "UnsafeRecipient",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "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": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "ERC20Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "ERC721Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "user",
        "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": "id",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "ROYALTY_AMOUNT",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amountOrId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "availableIds",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "baseTokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "liquidityPool",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lpStartTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "ownerOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "revokeOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_salePrice",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "royaltyRecipient",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "id",
        "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": "id",
        "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": "string",
        "name": "_baseURI",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_liquidityPool",
        "type": "address"
      }
    ],
    "name": "setLiquidityPool",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_recipient",
        "type": "address"
      }
    ],
    "name": "setRoyaltyRecipient",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "target",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "state",
        "type": "bool"
      }
    ],
    "name": "setWhitelist",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "startTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalAvailableIds",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "totalNFTsOwned",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalNativeSupply",
    "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": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "whitelist",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]


Contract Creation Code
60e06040523480156200001157600080fd5b506040516200504e3803806200504e833981810160405281019062000037919062000395565b6040518060400160405280600e81526020017f546f7563616e73417661783430340000000000000000000000000000000000008152506040518060400160405280600481526020017f43414e530000000000000000000000000000000000000000000000000000000081525060126113888580600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000111576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508460019081620001be919062000656565b508360029081620001d0919062000656565b508260ff1660808160ff16815250508160c08181525050608051600a620001f89190620008cd565b826200020591906200091e565b60a08181525050505050505069010f0cf064dd59200000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060800160405280604381526020016200500b60439139600e908162000322919062000656565b50505062000969565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200035d8262000330565b9050919050565b6200036f8162000350565b81146200037b57600080fd5b50565b6000815190506200038f8162000364565b92915050565b60008060408385031215620003af57620003ae6200032b565b5b6000620003bf858286016200037e565b9250506020620003d2858286016200037e565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200045e57607f821691505b60208210810362000474576200047362000416565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200049f565b620004ea86836200049f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000537620005316200052b8462000502565b6200050c565b62000502565b9050919050565b6000819050919050565b620005538362000516565b6200056b62000562826200053e565b848454620004ac565b825550505050565b600090565b6200058262000573565b6200058f81848462000548565b505050565b5b81811015620005b757620005ab60008262000578565b60018101905062000595565b5050565b601f8211156200060657620005d0816200047a565b620005db846200048f565b81016020851015620005eb578190505b62000603620005fa856200048f565b83018262000594565b50505b505050565b600082821c905092915050565b60006200062b600019846008026200060b565b1980831691505092915050565b600062000646838362000618565b9150826002028217905092915050565b6200066182620003dc565b67ffffffffffffffff8111156200067d576200067c620003e7565b5b62000689825462000445565b62000696828285620005bb565b600060209050601f831160018114620006ce5760008415620006b9578287015190505b620006c5858262000638565b86555062000735565b601f198416620006de866200047a565b60005b828110156200070857848901518255600182019150602085019450602081019050620006e1565b8683101562000728578489015162000724601f89168262000618565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007cb57808604811115620007a357620007a26200073d565b5b6001851615620007b35780820291505b8081029050620007c3856200076c565b945062000783565b94509492505050565b600082620007e65760019050620008b9565b81620007f65760009050620008b9565b81600181146200080f57600281146200081a5762000850565b6001915050620008b9565b60ff8411156200082f576200082e6200073d565b5b8360020a9150848211156200084957620008486200073d565b5b50620008b9565b5060208310610133831016604e8410600b84101617156200088a5782820a9050838111156200088457620008836200073d565b5b620008b9565b62000899848484600162000779565b92509050818404811115620008b357620008b26200073d565b5b81810290505b9392505050565b600060ff82169050919050565b6000620008da8262000502565b9150620008e783620008c0565b9250620009167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007d4565b905092915050565b60006200092b8262000502565b9150620009388362000502565b9250828202620009488162000502565b915082820484148315176200096257620009616200073d565b5b5092915050565b60805160a05160c05161465d620009ae600039600081816115060152612a6e015260008181610d3601526125f001526000818161105a01526126c0015261465d6000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80636352211e11610130578063a9059cbb116100b8578063d547cfb71161007c578063d547cfb714610691578063d9adc191146106af578063dd62ed3e146106df578063e985e9c51461070f578063f2fde38b1461073f57610227565b8063a9059cbb146105c7578063b2c75172146105f7578063b88d4fde14610615578063c87b56dd14610631578063d528d1181461066157610227565b806381456f48116100ff57806381456f48146105215780638da5cb5b1461053f57806395d89b411461055d5780639b19251a1461057b578063a22cb465146105ab57610227565b80636352211e14610485578063665a11ca146104b557806370a08231146104d357806378e979251461050357610227565b80632a55205a116101b357806342842e0e1161018257806342842e0e146103f55780634c00de82146104115780634f02c4201461042f57806353d6fd591461044d57806355f804b31461046957610227565b80632a55205a146103805780632b968958146103b1578063313ce567146103bb57806341e42f30146103d957610227565b8063081812fc116101fa578063081812fc146102b4578063095ea7b3146102e457806317b725091461031457806318160ddd1461033257806323b872dd1461035057610227565b8063018770201461022c57806301ffc9a71461024857806304bdc76b1461027857806306fdde0314610296575b600080fd5b61024660048036038101906102419190613389565b61075b565b005b610262600480360381019061025d919061340e565b610836565b60405161026f9190613456565b60405180910390f35b610280610967565b60405161028d919061348a565b60405180910390f35b61029e610974565b6040516102ab9190613535565b60405180910390f35b6102ce60048036038101906102c99190613583565b610a02565b6040516102db91906135bf565b60405180910390f35b6102fe60048036038101906102f991906135da565b610a35565b60405161030b9190613456565b60405180910390f35b61031c610d2e565b604051610329919061348a565b60405180910390f35b61033a610d34565b604051610347919061348a565b60405180910390f35b61036a6004803603810190610365919061361a565b610d58565b6040516103779190613456565b60405180910390f35b61039a6004803603810190610395919061366d565b610ee9565b6040516103a89291906136ad565b60405180910390f35b6103b9610f35565b005b6103c3611058565b6040516103d091906136f2565b60405180910390f35b6103f360048036038101906103ee9190613389565b61107c565b005b61040f600480360381019061040a919061361a565b611145565b005b610419611279565b60405161042691906135bf565b60405180910390f35b61043761129f565b604051610444919061348a565b60405180910390f35b61046760048036038101906104629190613739565b6112a5565b005b610483600480360381019061047e91906138ae565b611385565b005b61049f600480360381019061049a9190613583565b61141d565b6040516104ac91906135bf565b60405180910390f35b6104bd6114c0565b6040516104ca91906135bf565b60405180910390f35b6104ed60048036038101906104e89190613389565b6114e6565b6040516104fa919061348a565b60405180910390f35b61050b6114fe565b604051610518919061348a565b60405180910390f35b610529611504565b604051610536919061348a565b60405180910390f35b610547611528565b60405161055491906135bf565b60405180910390f35b61056561154c565b6040516105729190613535565b60405180910390f35b61059560048036038101906105909190613389565b6115da565b6040516105a29190613456565b60405180910390f35b6105c560048036038101906105c09190613739565b6115fa565b005b6105e160048036038101906105dc91906135da565b6116f7565b6040516105ee9190613456565b60405180910390f35b6105ff61170c565b60405161060c919061348a565b60405180910390f35b61062f600480360381019061062a9190613957565b611712565b005b61064b60048036038101906106469190613583565b61184c565b6040516106589190613535565b60405180910390f35b61067b60048036038101906106769190613583565b611880565b604051610688919061348a565b60405180910390f35b6106996118a4565b6040516106a69190613535565b60405180910390f35b6106c960048036038101906106c49190613389565b611932565b6040516106d6919061348a565b60405180910390f35b6106f960048036038101906106f491906139df565b61197e565b604051610706919061348a565b60405180910390f35b610729600480360381019061072491906139df565b6119a3565b6040516107369190613456565b60405180910390f35b61075960048036038101906107549190613389565b6119d2565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107e0576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061082c8160016112a5565b4260118190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061090157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109505750632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610960575061095f82611b5a565b5b9050919050565b6000600d80549050905090565b6001805461098190613a4e565b80601f01602080910402602001604051908101604052809291908181526020018280546109ad90613a4e565b80156109fa5780601f106109cf576101008083540402835291602001916109fa565b820191906000526020600020905b8154815290600101906020018083116109dd57829003601f168201915b505050505081565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006003548211158015610a495750600082115b15610c3d5760006008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b495750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610b80576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836006600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610c2f919061348a565b60405180910390a350610d24565b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d1b919061348a565b60405180910390a35b6001905092915050565b60115481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490613acb565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ed1578281610e509190613b1a565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610edc858585611bc4565b5060019150509392505050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661271061025885610f209190613b4e565b610f2a9190613bbf565b915091509250929050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fba576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611101576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61115133848484611fb2565b60008273ffffffffffffffffffffffffffffffffffffffff163b1415801561123d575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b81526004016111d893929190613c27565b6020604051808303816000875af11580156111f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121b9190613c86565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611274576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461132a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461140a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600e90816114199190613e5f565b5050565b60006008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114bb576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b60105481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461155990613a4e565b80601f016020809104026020016040519081016040528092919081815260200182805461158590613a4e565b80156115d25780601f106115a7576101008083540402835291602001916115d2565b820191906000526020600020905b8154815290600101906020018083116115b557829003601f168201915b505050505081565b600c6020528060005260406000206000915054906101000a900460ff1681565b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116eb9190613456565b60405180910390a35050565b6000611704338484611bc4565b905092915050565b61025881565b61171e33868686611fb2565b60008473ffffffffffffffffffffffffffffffffffffffff163b1415801561180e575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b81526004016117a9959493929190613f5e565b6020604051808303816000875af11580156117c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ec9190613c86565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611845576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b6060600e611859836123bc565b60405160200161186a92919061406b565b6040516020818303038152906040529050919050565b600d818154811061189057600080fd5b906000526020600020016000915090505481565b600e80546118b190613a4e565b80601f01602080910402602001604051908101604052809291908181526020018280546118dd90613a4e565b801561192a5780601f106118ff5761010080835404028352916020019161192a565b820191906000526020600020905b81548152906001019060200180831161190d57829003601f168201915b505050505081565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6005602052816000526040600020602052806000526040600020600091509150505481565b60076020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a57576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611abd576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000611bd184848461248a565b6000611bdb6126bc565b90506000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611c6e876126f0565b15611d1557600083600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611cc39190613b4e565b83611cce9190613b1a565b905085811015611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a906140db565b60405180910390fd5b505b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d649190613b1a565b9250508190555084600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611dc1876126fb565b1580611e0f57506000600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050115b15611ea357600083600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e619190613bbf565b8484611e6d9190613bbf565b611e779190613b1a565b905060005b81811015611ea057611e8d89612761565b8080611e98906140fb565b915050611e7c565b50505b611eac866126fb565b611f3f5760008382611ebe9190613bbf565b84600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f099190613bbf565b611f139190613b1a565b905060005b81811015611f3c57611f29886129e6565b8080611f34906140fb565b915050611f18565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148787604051611f9c919061348a565b60405180910390a3600193505050509392505050565b6008600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a9061418f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b9906141fb565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806121825750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121eb57506006600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b61222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614267565b60405180910390fd5b6122326126bc565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122809190613b1a565b9250508190555061228f6126bc565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506122e58382612c39565b6122ef8282612fbd565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e0314876123a16126bc565b6040516123ae919061348a565b60405180910390a350505050565b6060600060016123cb846131bf565b01905060008167ffffffffffffffff8111156123ea576123e9613783565b5b6040519080825280601f01601f19166020018201604052801561241c5781602001600182028036833780820191505090505b509050600082602001820190505b60011561247f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161247357612472613b90565b5b0494506000850361242a575b819350505050919050565b612495838383613312565b600073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036125d45760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612590575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6125cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c6906142f9565b60405180910390fd5b6126b7565b6102586011546125e49190614319565b4210156126b6576103e87f0000000000000000000000000000000000000000000000000000000000000000600161261b9190613b4e565b6126259190613bbf565b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126709190614319565b11156126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a890614399565b60405180910390fd5b6126b7565b5b505050565b60007f0000000000000000000000000000000000000000000000000000000000000000600a6126eb91906144ec565b905090565b6000813b9050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061275a5750612759826126f0565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127c7576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506128579190613b1a565b8154811061286857612867614537565b5b90600052602060002001549050600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806128c4576128c3614566565b5b60019003818190600052602060002001600090559055600b6000828152602001908152602001600020600090556008600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556006600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600d81908060018154018082558091505060019003906000526020600020016000909190919091505580600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612a4c576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600d8054905003612adb576003600081548092919060010191905055507f00000000000000000000000000000000000000000000000000000000000000006003541115612ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac890614607565b60405180910390fd5b6003549050612b36565b600d6001600d80549050612aef9190613b1a565b81548110612b0057612aff614537565b5b90600052602060002001549050600d805480612b1f57612b1e614566565b5b600190038181906000526020600020016000905590555b600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bcf576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612bd98282612fbd565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000612c44836126f0565b15612dd257600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612cd79190613b1a565b81548110612ce857612ce7614537565b5b9060005260206000200154905080600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b60008581526020019081526020016000205481548110612d5a57612d59614537565b5b9060005260206000200181905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480612db757612db6614566565b5b60019003818190600052602060002001600090559055612f57565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612e609190613b1a565b81548110612e7157612e70614537565b5b9060005260206000200154905080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b60008581526020019081526020016000205481548110612ee357612ee2614537565b5b9060005260206000200181905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480612f4057612f3f614566565b5b600190038181906000526020600020016000905590555b600b600083815260200190815260200160002054600b6000838152602001908152602001600020819055506006600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055505050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613018826126f0565b156130ee57600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002001600090919091909150556001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506130d29190613b1a565b600b6000838152602001908152602001600020819055506131bb565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002001600090919091909150556001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506131a39190613b1a565b600b6000838152602001908152602001600020819055505b5050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061321d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161321357613212613b90565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061325a576d04ee2d6d415b85acef810000000083816132505761324f613b90565b5b0492506020810190505b662386f26fc10000831061328957662386f26fc10000838161327f5761327e613b90565b5b0492506010810190505b6305f5e10083106132b2576305f5e10083816132a8576132a7613b90565b5b0492506008810190505b61271083106132d75761271083816132cd576132cc613b90565b5b0492506004810190505b606483106132fa57606483816132f0576132ef613b90565b5b0492506002810190505b600a8310613309576001810190505b80915050919050565b505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133568261332b565b9050919050565b6133668161334b565b811461337157600080fd5b50565b6000813590506133838161335d565b92915050565b60006020828403121561339f5761339e613321565b5b60006133ad84828501613374565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6133eb816133b6565b81146133f657600080fd5b50565b600081359050613408816133e2565b92915050565b60006020828403121561342457613423613321565b5b6000613432848285016133f9565b91505092915050565b60008115159050919050565b6134508161343b565b82525050565b600060208201905061346b6000830184613447565b92915050565b6000819050919050565b61348481613471565b82525050565b600060208201905061349f600083018461347b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134df5780820151818401526020810190506134c4565b60008484015250505050565b6000601f19601f8301169050919050565b6000613507826134a5565b61351181856134b0565b93506135218185602086016134c1565b61352a816134eb565b840191505092915050565b6000602082019050818103600083015261354f81846134fc565b905092915050565b61356081613471565b811461356b57600080fd5b50565b60008135905061357d81613557565b92915050565b60006020828403121561359957613598613321565b5b60006135a78482850161356e565b91505092915050565b6135b98161334b565b82525050565b60006020820190506135d460008301846135b0565b92915050565b600080604083850312156135f1576135f0613321565b5b60006135ff85828601613374565b92505060206136108582860161356e565b9150509250929050565b60008060006060848603121561363357613632613321565b5b600061364186828701613374565b935050602061365286828701613374565b92505060406136638682870161356e565b9150509250925092565b6000806040838503121561368457613683613321565b5b60006136928582860161356e565b92505060206136a38582860161356e565b9150509250929050565b60006040820190506136c260008301856135b0565b6136cf602083018461347b565b9392505050565b600060ff82169050919050565b6136ec816136d6565b82525050565b600060208201905061370760008301846136e3565b92915050565b6137168161343b565b811461372157600080fd5b50565b6000813590506137338161370d565b92915050565b600080604083850312156137505761374f613321565b5b600061375e85828601613374565b925050602061376f85828601613724565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6137bb826134eb565b810181811067ffffffffffffffff821117156137da576137d9613783565b5b80604052505050565b60006137ed613317565b90506137f982826137b2565b919050565b600067ffffffffffffffff82111561381957613818613783565b5b613822826134eb565b9050602081019050919050565b82818337600083830152505050565b600061385161384c846137fe565b6137e3565b90508281526020810184848401111561386d5761386c61377e565b5b61387884828561382f565b509392505050565b600082601f83011261389557613894613779565b5b81356138a584826020860161383e565b91505092915050565b6000602082840312156138c4576138c3613321565b5b600082013567ffffffffffffffff8111156138e2576138e1613326565b5b6138ee84828501613880565b91505092915050565b600080fd5b600080fd5b60008083601f84011261391757613916613779565b5b8235905067ffffffffffffffff811115613934576139336138f7565b5b6020830191508360018202830111156139505761394f6138fc565b5b9250929050565b60008060008060006080868803121561397357613972613321565b5b600061398188828901613374565b955050602061399288828901613374565b94505060406139a38882890161356e565b935050606086013567ffffffffffffffff8111156139c4576139c3613326565b5b6139d088828901613901565b92509250509295509295909350565b600080604083850312156139f6576139f5613321565b5b6000613a0485828601613374565b9250506020613a1585828601613374565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a6657607f821691505b602082108103613a7957613a78613a1f565b5b50919050565b7f4e6f7420656e6f75676820616c6c6f77616e63652e0000000000000000000000600082015250565b6000613ab56015836134b0565b9150613ac082613a7f565b602082019050919050565b60006020820190508181036000830152613ae481613aa8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b2582613471565b9150613b3083613471565b9250828203905081811115613b4857613b47613aeb565b5b92915050565b6000613b5982613471565b9150613b6483613471565b9250828202613b7281613471565b91508282048414831517613b8957613b88613aeb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bca82613471565b9150613bd583613471565b925082613be557613be4613b90565b5b828204905092915050565b600082825260208201905092915050565b50565b6000613c11600083613bf0565b9150613c1c82613c01565b600082019050919050565b6000608082019050613c3c60008301866135b0565b613c4960208301856135b0565b613c56604083018461347b565b8181036060830152613c6781613c04565b9050949350505050565b600081519050613c80816133e2565b92915050565b600060208284031215613c9c57613c9b613321565b5b6000613caa84828501613c71565b91505092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613d157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613cd8565b613d1f8683613cd8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613d5c613d57613d5284613471565b613d37565b613471565b9050919050565b6000819050919050565b613d7683613d41565b613d8a613d8282613d63565b848454613ce5565b825550505050565b600090565b613d9f613d92565b613daa818484613d6d565b505050565b5b81811015613dce57613dc3600082613d97565b600181019050613db0565b5050565b601f821115613e1357613de481613cb3565b613ded84613cc8565b81016020851015613dfc578190505b613e10613e0885613cc8565b830182613daf565b50505b505050565b600082821c905092915050565b6000613e3660001984600802613e18565b1980831691505092915050565b6000613e4f8383613e25565b9150826002028217905092915050565b613e68826134a5565b67ffffffffffffffff811115613e8157613e80613783565b5b613e8b8254613a4e565b613e96828285613dd2565b600060209050601f831160018114613ec95760008415613eb7578287015190505b613ec18582613e43565b865550613f29565b601f198416613ed786613cb3565b60005b82811015613eff57848901518255600182019150602085019450602081019050613eda565b86831015613f1c5784890151613f18601f891682613e25565b8355505b6001600288020188555050505b505050505050565b6000613f3d8385613bf0565b9350613f4a83858461382f565b613f53836134eb565b840190509392505050565b6000608082019050613f7360008301886135b0565b613f8060208301876135b0565b613f8d604083018661347b565b8181036060830152613fa0818486613f31565b90509695505050505050565b600081905092915050565b60008154613fc481613a4e565b613fce8186613fac565b94506001821660008114613fe95760018114613ffe57614031565b60ff1983168652811515820286019350614031565b61400785613cb3565b60005b838110156140295781548189015260018201915060208101905061400a565b838801955050505b50505092915050565b6000614045826134a5565b61404f8185613fac565b935061405f8185602086016134c1565b80840191505092915050565b60006140778285613fb7565b9150614083828461403a565b91508190509392505050565b7f4e6f7420656e6f75676820746f6b656e2062616c616e63652e00000000000000600082015250565b60006140c56019836134b0565b91506140d08261408f565b602082019050919050565b600060208201905081810360008301526140f4816140b8565b9050919050565b600061410682613471565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361413857614137613aeb565b5b600182019050919050565b7f53656e646572206973206e6f74206f776e6572206f66204e46542e0000000000600082015250565b6000614179601b836134b0565b915061418482614143565b602082019050919050565b600060208201905081810360008301526141a88161416c565b9050919050565b7f43616e6e6f742073656e6420746f206e756c6c20616464726573732e00000000600082015250565b60006141e5601c836134b0565b91506141f0826141af565b602082019050919050565b60006020820190508181036000830152614214816141d8565b9050919050565b7f4f70657261746f72206973206e6f7420617070726f7665642e00000000000000600082015250565b60006142516019836134b0565b915061425c8261421b565b602082019050919050565b6000602082019050818103600083015261428081614244565b9050919050565b7f50617469656e6365202d2054726164696e67204e6f742053746172746564205960008201527f6574210000000000000000000000000000000000000000000000000000000000602082015250565b60006142e36023836134b0565b91506142ee82614287565b604082019050919050565b60006020820190508181036000830152614312816142d6565b9050919050565b600061432482613471565b915061432f83613471565b925082820190508082111561434757614346613aeb565b5b92915050565b7f4e6f206d6f7265207468616e20302e312520617420746869732073746167652e600082015250565b60006143836020836134b0565b915061438e8261434d565b602082019050919050565b600060208201905081810360008301526143b281614376565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115614410578086048111156143ec576143eb613aeb565b5b60018516156143fb5780820291505b8081029050614409856143b9565b94506143d0565b94509492505050565b60008261442957600190506144e5565b8161443757600090506144e5565b816001811461444d576002811461445757614486565b60019150506144e5565b60ff84111561446957614468613aeb565b5b8360020a9150848211156144805761447f613aeb565b5b506144e5565b5060208310610133831016604e8410600b84101617156144bb5782820a9050838111156144b6576144b5613aeb565b5b6144e5565b6144c884848460016143c6565b925090508184048111156144df576144de613aeb565b5b81810290505b9392505050565b60006144f782613471565b9150614502836136d6565b925061452f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614419565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f43616e6e6f74206d696e74206d6f7265207468616e20676976656e207375707060008201527f6c792e0000000000000000000000000000000000000000000000000000000000602082015250565b60006145f16023836134b0565b91506145fc82614595565b604082019050919050565b60006020820190508181036000830152614620816145e4565b905091905056fea2646970667358221220eeec2b41231baba2f240ed99fccf4e2118e80ed9926667ef4b46d00c85150c9564736f6c63430008140033697066733a2f2f62616679626569627a7664356a646c65707a336b65736d7a75687971706e37736f696575716e6e6d7a7277683633673272346778353536337975792f000000000000000000000000617992a368060ba81b505d2111c44ee169f17e5f0000000000000000000000008b2339b140ac137cef1cfca74718747fb1c636f7