Contract Overview
Balance:
0.038 AVAX

Token:
More Info
Tag:
Not Available. Update?

Contract Creators:

Token Trackers:
Contract Source Code Verified (Partial Match)
Contract Name:
LuckyBoy

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 10 runs

Created At:
Wed, 17 Jan 2024 20:54:54 GMT
Ownable.sol
contracts
cheeseart-contracts
@openzeppelin
contracts
access
Ownable.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numerator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "denominator",
        "type": "uint256"
      }
    ],
    "name": "ERC2981InvalidDefaultRoyalty",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC2981InvalidDefaultRoyaltyReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "numerator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "denominator",
        "type": "uint256"
      }
    ],
    "name": "ERC2981InvalidTokenRoyalty",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC2981InvalidTokenRoyaltyReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "OperatorNotAllowed",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "approved",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "LuckyBoyMinted",
    "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_TOKENS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "Minted_Presale_Token",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      }
    ],
    "name": "addToPresale2List",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      }
    ],
    "name": "addToPresaleList",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_to",
        "type": "address"
      }
    ],
    "name": "airdrop",
    "outputs": [],
    "stateMutability": "payable",
    "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": [],
    "name": "baseURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_tokenId",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "devReserve",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "isRevealed",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxTokenPurchase",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_reserveAmount",
        "type": "uint256"
      }
    ],
    "name": "mintReservedTokens",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      }
    ],
    "name": "mintToken",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_addr",
        "type": "address"
      }
    ],
    "name": "onPreSale2List",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_addr",
        "type": "address"
      }
    ],
    "name": "onPreSaleList",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "ownerOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      }
    ],
    "name": "presale1",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      }
    ],
    "name": "presale2",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "presale2IsActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "presaleIsActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "presaleMaxMint",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "presalePrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "publicPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      }
    ],
    "name": "removeFromPresale2List",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      }
    ],
    "name": "removeFromPresaleList",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "reveal",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "salePrice",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "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": "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": [],
    "name": "saleIsActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "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": "_newBaseURI",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "setMaxTokenPurchase",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_price",
        "type": "uint256"
      }
    ],
    "name": "setNewPrice",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_price",
        "type": "uint256"
      }
    ],
    "name": "setNewpresalePrice",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_maxMint",
        "type": "uint256"
      }
    ],
    "name": "setPresaleMaxMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_receiver",
        "type": "address"
      },
      {
        "internalType": "uint96",
        "name": "_feeNumerator",
        "type": "uint96"
      }
    ],
    "name": "setPrimaryRoyalty",
    "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": [],
    "name": "togglePresale2State",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "togglePresaleState",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "toggleSaleState",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenOfOwnerByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      }
    ],
    "name": "tokensOfOwner",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  }
]


Contract Creation Code
6002600d556000600e819055668700cc75770000600f81905560105560a0604052608090815260119062000034908262000471565b506012805463ffffffff191690556109c460175560fa6018553480156200005a57600080fd5b50733cc6cdda760b79bafa08df41ecfa224f810dceb660016040518060400160405280600c81526020016b426520596f757273656c662160a01b81525060405180604001604052806002815260200161424560f01b8152508160009081620000c3919062000471565b506001620000d2828262000471565b505050620000ef620000e96200025f60201b60201c565b62000263565b6daaeb6d7670e522a718067333cd4e3b15620002345780156200018257604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200016357600080fd5b505af115801562000178573d6000803e3d6000fd5b5050505062000234565b6001600160a01b03821615620001d35760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af29039060440162000148565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b1580156200021a57600080fd5b505af11580156200022f573d6000803e3d6000fd5b505050505b5062000259905073e2e16b7510df69e051571769417340787dd16cdb6102ee620002b5565b6200053d565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6006546001600160a01b03163314620003155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b62000321828262000325565b5050565b6127106001600160601b0382168110156200036657604051636f483d0960e01b81526001600160601b0383166004820152602481018290526044016200030c565b6001600160a01b0383166200039257604051635b6cc80560e11b8152600060048201526024016200030c565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600b55565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003f757607f821691505b6020821081036200041857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200046c57600081815260208120601f850160051c81016020861015620004475750805b601f850160051c820191505b81811015620004685782815560010162000453565b5050505b505050565b81516001600160401b038111156200048d576200048d620003cc565b620004a5816200049e8454620003e2565b846200041e565b602080601f831160018114620004dd5760008415620004c45750858301515b600019600386901b1c1916600185901b17855562000468565b600085815260208120601f198616915b828110156200050e57888601518255948401946001909101908401620004ed565b50858210156200052d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61396e806200054d6000396000f3fe60806040526004361061027a5760003560e01c80620e7fa81461027f57806301ffc9a7146102a857806306fdde03146102d8578063081812fc146102fa578063095ea7b31461032757806309aa3dcf1461034957806311576b791461035f57806318160ddd1461039857806321860a05146103ad57806323b872dd146103c05780632a55205a146103e05780632f745c591461041f57806330f72cd41461043f5780633ccfd60b1461045e5780633e939aaf1461046657806342842e0e1461048657806342966c68146104a65780634e49e193146104c65780634f6ccce7146104e657806354214f691461050657806355f804b31461052757806357535c43146105475780636352211e1461056757806366c8c3af146105875780636c0360eb146105a757806370a08231146105bc578063715018a6146105dc5780637204a3c9146105f1578063816f8d42146106115780638462151c14610631578063867b942c1461065e5780638c8b85ea146106745780638da5cb5b146106ad578063946ef42a146106c257806395d89b41146106d8578063a22cb465146106ed578063a475b5dd1461070d578063a945bf8014610722578063b179e06014610738578063b88d4fde14610758578063bd7ccb3414610778578063c051972b14610798578063c634d032146107ab578063c7c6b8b6146107be578063c87b56dd146107de578063c90fb07b146107fe578063ca617dc014610813578063daaeec8614610826578063df4305d21461083b578063e985e9c51461085b578063eb8d24441461087b578063ee8cdd4e14610895578063f285e69e146108b5578063f2fde38b146108ca578063f47c84c5146108ea578063fcd2a42714610900575b600080fd5b34801561028b57600080fd5b5061029560105481565b6040519081526020015b60405180910390f35b3480156102b457600080fd5b506102c86102c3366004612f22565b610916565b604051901515815260200161029f565b3480156102e457600080fd5b506102ed610927565b60405161029f9190612f8f565b34801561030657600080fd5b5061031a610315366004612fa2565b6109b9565b60405161029f9190612fbb565b34801561033357600080fd5b50610347610342366004612feb565b610a46565b005b34801561035557600080fd5b50610295600d5481565b34801561036b57600080fd5b506102c861037a366004613015565b6001600160a01b031660009081526013602052604090205460ff1690565b3480156103a457600080fd5b50600954610295565b6103476103bb366004613015565b610a7a565b3480156103cc57600080fd5b506103476103db366004613030565b610acb565b3480156103ec57600080fd5b506104006103fb36600461306c565b610b01565b604080516001600160a01b03909316835260208301919091520161029f565b34801561042b57600080fd5b5061029561043a366004612feb565b610bad565b34801561044b57600080fd5b506012546102c890610100900460ff1681565b610347610c43565b34801561047257600080fd5b5061034761048136600461308e565b610cdc565b34801561049257600080fd5b506103476104a1366004613030565b610dcc565b3480156104b257600080fd5b506103476104c1366004612fa2565b610de7565b3480156104d257600080fd5b506103476104e1366004613102565b610e6b565b3480156104f257600080fd5b50610295610501366004612fa2565b610ea4565b34801561051257600080fd5b506012546102c8906301000000900460ff1681565b34801561053357600080fd5b506103476105423660046131d0565b610f37565b34801561055357600080fd5b50610347610562366004612feb565b610f72565b34801561057357600080fd5b5061031a610582366004612fa2565b61107d565b34801561059357600080fd5b506012546102c89062010000900460ff1681565b3480156105b357600080fd5b506102ed6110f4565b3480156105c857600080fd5b506102956105d7366004613015565b611182565b3480156105e857600080fd5b50610347611209565b3480156105fd57600080fd5b5061034761060c36600461308e565b611244565b34801561061d57600080fd5b5061034761062c366004612fa2565b611334565b34801561063d57600080fd5b5061065161064c366004613015565b611368565b60405161029f9190613218565b34801561066a57600080fd5b50610295600e5481565b34801561068057600080fd5b506102c861068f366004613015565b6001600160a01b031660009081526016602052604090205460ff1690565b3480156106b957600080fd5b5061031a611429565b3480156106ce57600080fd5b5061029560175481565b3480156106e457600080fd5b506102ed611438565b3480156106f957600080fd5b5061034761070836600461325c565b611447565b34801561071957600080fd5b50610347611477565b34801561072e57600080fd5b50610295600f5481565b34801561074457600080fd5b5061034761075336600461308e565b6114bb565b34801561076457600080fd5b5061034761077336600461328d565b6115ab565b34801561078457600080fd5b50610347610793366004612fa2565b6115e3565b6103476107a6366004612fa2565b611617565b6103476107b9366004612fa2565b6118d7565b3480156107ca57600080fd5b506103476107d936600461308e565b611a8c565b3480156107ea57600080fd5b506102ed6107f9366004612fa2565b611b7c565b34801561080a57600080fd5b50610347611c7e565b610347610821366004612fa2565b611ccc565b34801561083257600080fd5b50610347611f80565b34801561084757600080fd5b50610347610856366004612fa2565b611fc3565b34801561086757600080fd5b506102c8610876366004613308565b611ff7565b34801561088757600080fd5b506012546102c89060ff1681565b3480156108a157600080fd5b506103476108b0366004612fa2565b612025565b3480156108c157600080fd5b50610347612059565b3480156108d657600080fd5b506103476108e5366004613015565b6120a5565b3480156108f657600080fd5b506102956109c481565b34801561090c57600080fd5b5061029560185481565b600061092182612142565b92915050565b6060600080546109369061333b565b80601f01602080910402602001604051908101604052809291908181526020018280546109629061333b565b80156109af5780601f10610984576101008083540402835291602001916109af565b820191906000526020600020905b81548152906001019060200180831161099257829003601f168201915b5050505050905090565b60006109c482612167565b610a2a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b610a4f82612184565b15610a6c5760405162461bcd60e51b8152600401610a219061336f565b610a768282612262565b5050565b33610a83611429565b6001600160a01b031614610aa95760405162461bcd60e51b8152600401610a219061338b565b6000610ab460095490565b610abf9060016133d6565b9050610a76828261236d565b610ad53382612387565b610af15760405162461bcd60e51b8152600401610a21906133e9565b610afc838383612451565b505050565b6000828152600c602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610b76575060408051808201909152600b546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610b95906001600160601b03168761343a565b610b9f9190613467565b915196919550909350505050565b6000610bb883611182565b8210610c1a5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610a21565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b33610c4c611429565b6001600160a01b031614610c725760405162461bcd60e51b8152600401610a219061338b565b6000610c7c611429565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114610cc6576040519150601f19603f3d011682016040523d82523d6000602084013e610ccb565b606091505b5050905080610cd957600080fd5b50565b33610ce5611429565b6001600160a01b031614610d0b5760405162461bcd60e51b8152600401610a219061338b565b60005b81811015610afc576000838383818110610d2a57610d2a61347b565b9050602002016020810190610d3f9190613015565b6001600160a01b031603610d655760405162461bcd60e51b8152600401610a2190613491565b600160166000858585818110610d7d57610d7d61347b565b9050602002016020810190610d929190613015565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610dc4816134c5565b915050610d0e565b610afc838383604051806020016040528060008152506115ab565b33610df0611429565b6001600160a01b031614610e165760405162461bcd60e51b8152600401610a219061338b565b610e1f81612167565b610e625760405162461bcd60e51b8152602060048201526014602482015273546f6b656e20646f65736e27742065786973742160601b6044820152606401610a21565b610cd9816125ea565b33610e74611429565b6001600160a01b031614610e9a5760405162461bcd60e51b8152600401610a219061338b565b610a76828261267f565b6000610eaf60095490565b8210610f125760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610a21565b60098281548110610f2557610f2561347b565b90600052602060002001549050919050565b33610f40611429565b6001600160a01b031614610f665760405162461bcd60e51b8152600401610a219061338b565b6011610a76828261352c565b33610f7b611429565b6001600160a01b031614610fa15760405162461bcd60e51b8152600401610a219061338b565b600081118015610fb357506018548111155b610fff5760405162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f7567682072657365727665206c65667420666f72207465616d6044820152606401610a21565b60005b8181101561106157600061101560095490565b6110209060016133d6565b90506109c48111156110445760405162461bcd60e51b8152600401610a21906135eb565b61104e848261236d565b5080611059816134c5565b915050611002565b5080601860008282546110749190613635565b90915550505050565b6000818152600260205260408120546001600160a01b0316806109215760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610a21565b601180546111019061333b565b80601f016020809104026020016040519081016040528092919081815260200182805461112d9061333b565b801561117a5780601f1061114f5761010080835404028352916020019161117a565b820191906000526020600020905b81548152906001019060200180831161115d57829003601f168201915b505050505081565b60006001600160a01b0382166111ed5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a21565b506001600160a01b031660009081526003602052604090205490565b33611212611429565b6001600160a01b0316146112385760405162461bcd60e51b8152600401610a219061338b565b6112426000612722565b565b3361124d611429565b6001600160a01b0316146112735760405162461bcd60e51b8152600401610a219061338b565b60005b81811015610afc5760008383838181106112925761129261347b565b90506020020160208101906112a79190613015565b6001600160a01b0316036112cd5760405162461bcd60e51b8152600401610a2190613491565b6001601360008585858181106112e5576112e561347b565b90506020020160208101906112fa9190613015565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061132c816134c5565b915050611276565b3361133d611429565b6001600160a01b0316146113635760405162461bcd60e51b8152600401610a219061338b565b601055565b6060600061137583611182565b9050806000036113995760408051600080825260208201909252905b509392505050565b6000816001600160401b038111156113b3576113b3613145565b6040519080825280602002602001820160405280156113dc578160200160208202803683370190505b50905060005b82811015611391576113f48582610bad565b8282815181106114065761140661347b565b60209081029190910101528061141b816134c5565b9150506113e2565b50919050565b6006546001600160a01b031690565b6060600180546109369061333b565b61145082612184565b1561146d5760405162461bcd60e51b8152600401610a219061336f565b610a768282612774565b33611480611429565b6001600160a01b0316146114a65760405162461bcd60e51b8152600401610a219061338b565b6012805463ff00000019166301000000179055565b336114c4611429565b6001600160a01b0316146114ea5760405162461bcd60e51b8152600401610a219061338b565b60005b81811015610afc5760008383838181106115095761150961347b565b905060200201602081019061151e9190613015565b6001600160a01b0316036115445760405162461bcd60e51b8152600401610a2190613648565b60006013600085858581811061155c5761155c61347b565b90506020020160208101906115719190613015565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806115a3816134c5565b9150506114ed565b6115b53383612387565b6115d15760405162461bcd60e51b8152600401610a21906133e9565b6115dd84848484612834565b50505050565b336115ec611429565b6001600160a01b0316146116125760405162461bcd60e51b8152600401610a219061338b565b600d55565b601254610100900460ff166116665760405162461bcd60e51b815260206004820152601560248201527450726573616c65206973206e6f742061637469766560581b6044820152606401610a21565b3360009081526013602052604090205460ff166116955760405162461bcd60e51b8152600401610a219061367f565b6109c4816116a260095490565b6116ac91906133d6565b11156116ca5760405162461bcd60e51b8152600401610a21906135eb565b6000811180156116f65750600d54336000908152601460205260409020546116f39083906133d6565b11155b6117125760405162461bcd60e51b8152600401610a21906136b6565b60175481600e5461172391906133d6565b111561177f5760405162461bcd60e51b815260206004820152602560248201527f50757263686173652065786365656473206d6178202070726553616c6520616c6044820152641b1bddd95960da1b6064820152608401610a21565b600d543360009081526015602052604090205461179d9083906133d6565b11156117bb5760405162461bcd60e51b8152600401610a2190613700565b806010546117c9919061343a565b3410156117e85760405162461bcd60e51b8152600401610a2190613736565b60005b81811015610a765760006117fe60095490565b6118099060016133d6565b90506109c481111561182d5760405162461bcd60e51b8152600401610a21906135eb565b33600090815260156020526040812080546001929061184d9084906133d6565b9091555061185d9050338261236d565b33600090815260146020526040812080546001929061187d9084906133d6565b925050819055506001600e600082825461189791906133d6565b90915550506040516000805160206138b6833981519152906118bc908390339061376d565b60405180910390a150806118cf816134c5565b9150506117eb565b60125460ff166119335760405162461bcd60e51b815260206004820152602160248201527f53616c65206d7573742062652061637469766520746f206d696e7420546f6b656044820152603760f91b6064820152608401610a21565b60008111801561195f5750600d543360009081526014602052604090205461195c9083906133d6565b11155b61197b5760405162461bcd60e51b8152600401610a21906136b6565b6109c48161198860095490565b61199291906133d6565b11156119b05760405162461bcd60e51b8152600401610a21906135eb565b80600f546119be919061343a565b3410156119dd5760405162461bcd60e51b8152600401610a2190613736565b60005b81811015610a765760006119f360095490565b6119fe9060016133d6565b90506109c4811115611a225760405162461bcd60e51b8152600401610a21906135eb565b611a2c338261236d565b336000908152601460205260408120805460019290611a4c9084906133d6565b90915550506040516000805160206138b683398151915290611a71908390339061376d565b60405180910390a15080611a84816134c5565b9150506119e0565b33611a95611429565b6001600160a01b031614611abb5760405162461bcd60e51b8152600401610a219061338b565b60005b81811015610afc576000838383818110611ada57611ada61347b565b9050602002016020810190611aef9190613015565b6001600160a01b031603611b155760405162461bcd60e51b8152600401610a2190613648565b600060166000858585818110611b2d57611b2d61347b565b9050602002016020810190611b429190613015565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611b74816134c5565b915050611abe565b6060611b8782612167565b611beb5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610a21565b6000611bf5612867565b6012549091506301000000900460ff161515600003611c2e576040518060800160405280604381526020016138d6604391399392505050565b6000815111611c4c5760405180602001604052806000815250611c77565b80611c5684612876565b604051602001611c67929190613784565b6040516020818303038152906040525b9392505050565b33611c87611429565b6001600160a01b031614611cad5760405162461bcd60e51b8152600401610a219061338b565b6012805462ff0000198116620100009182900460ff1615909102179055565b60125462010000900460ff16611d1e5760405162461bcd60e51b815260206004820152601760248201527650726573616c652032206973206e6f742061637469766560481b6044820152606401610a21565b3360009081526013602052604090205460ff1680611d4b57503360009081526016602052604090205460ff165b611d675760405162461bcd60e51b8152600401610a219061367f565b600081118015611d935750600d5433600090815260146020526040902054611d909083906133d6565b11155b611daf5760405162461bcd60e51b8152600401610a21906136b6565b6109c481611dbc60095490565b611dc691906133d6565b1115611de45760405162461bcd60e51b8152600401610a21906135eb565b600081118015611df657506109c48111155b611e425760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742070757263686173652074686973206d616e7920746f6b656e736044820152606401610a21565b600d5433600090815260156020526040902054611e609083906133d6565b1115611e7e5760405162461bcd60e51b8152600401610a2190613700565b80601054611e8c919061343a565b341015611eab5760405162461bcd60e51b8152600401610a2190613736565b60005b81811015610a76576000611ec160095490565b611ecc9060016133d6565b90506109c4811115611ef05760405162461bcd60e51b8152600401610a21906135eb565b336000908152601560205260408120805460019290611f109084906133d6565b90915550611f209050338261236d565b336000908152601460205260408120805460019290611f409084906133d6565b90915550506040516000805160206138b683398151915290611f65908390339061376d565b60405180910390a15080611f78816134c5565b915050611eae565b33611f89611429565b6001600160a01b031614611faf5760405162461bcd60e51b8152600401610a219061338b565b6012805460ff19811660ff90911615179055565b33611fcc611429565b6001600160a01b031614611ff25760405162461bcd60e51b8152600401610a219061338b565b601755565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3361202e611429565b6001600160a01b0316146120545760405162461bcd60e51b8152600401610a219061338b565b600f55565b33612062611429565b6001600160a01b0316146120885760405162461bcd60e51b8152600401610a219061338b565b6012805461ff001981166101009182900460ff1615909102179055565b336120ae611429565b6001600160a01b0316146120d45760405162461bcd60e51b8152600401610a219061338b565b6001600160a01b0381166121395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a21565b610cd981612722565b60006001600160e01b0319821663152a902d60e11b1480610921575061092182612976565b6000908152600260205260409020546001600160a01b0316151590565b6000806cadc04c56bf30ac9d3c0aaf14dc6001600160a01b03166393790f4460e01b846040516024016121b79190612fbb565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516121f591906137c3565b600060405180830381855afa9150503d8060008114612230576040519150601f19603f3d011682016040523d82523d6000602084013e612235565b606091505b50909150506001600160a01b0383166cadc04c56bf30ac9d3c0aaf14dc14801590611c7757501592915050565b600061226d8261107d565b9050806001600160a01b0316836001600160a01b0316036122da5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a21565b336001600160a01b03821614806122f657506122f68133611ff7565b6123635760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776044820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b6064820152608401610a21565b610afc838361299b565b610a76828260405180602001604052806000815250612a09565b600061239282612167565b6123f35760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a21565b60006123fe8361107d565b9050806001600160a01b0316846001600160a01b031614806124395750836001600160a01b031661242e846109b9565b6001600160a01b0316145b8061244957506124498185611ff7565b949350505050565b826001600160a01b03166124648261107d565b6001600160a01b0316146124cc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610a21565b6001600160a01b03821661252e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a21565b612539838383612a3c565b61254460008261299b565b6001600160a01b038316600090815260036020526040812080546001929061256d908490613635565b90915550506001600160a01b038216600090815260036020526040812080546001929061259b9084906133d6565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03868116918217909255915184939187169160008051602061391983398151915291a4505050565b60006125f58261107d565b905061260381600084612a3c565b61260e60008361299b565b6001600160a01b0381166000908152600360205260408120805460019290612637908490613635565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b03841690600080516020613919833981519152908390a45050565b6127106001600160601b0382168110156126be57604051636f483d0960e01b81526001600160601b038316600482015260248101829052604401610a21565b6001600160a01b0383166126e8576000604051635b6cc80560e11b8152600401610a219190612fbb565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600b55565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b336001600160a01b038316036127c85760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610a21565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61283f848484612451565b61284b84848484612a47565b6115dd5760405162461bcd60e51b8152600401610a21906137df565b6060601180546109369061333b565b60608160000361289d5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156128c757806128b1816134c5565b91506128c09050600a83613467565b91506128a1565b6000816001600160401b038111156128e1576128e1613145565b6040519080825280601f01601f19166020018201604052801561290b576020820181803683370190505b5090505b841561244957612920600183613635565b915061292d600a86613831565b6129389060306133d6565b60f81b81838151811061294d5761294d61347b565b60200101906001600160f81b031916908160001a90535061296f600a86613467565b945061290f565b60006001600160e01b0319821663780e9d6360e01b1480610921575061092182612b48565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906129d08261107d565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b612a138383612b98565b612a206000848484612a47565b610afc5760405162461bcd60e51b8152600401610a21906137df565b610afc838383612cc4565b60006001600160a01b0384163b15612b3d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612a8b903390899088908890600401613845565b6020604051808303816000875af1925050508015612ac6575060408051601f3d908101601f19168201909252612ac391810190613882565b60015b612b23573d808015612af4576040519150601f19603f3d011682016040523d82523d6000602084013e612af9565b606091505b508051600003612b1b5760405162461bcd60e51b8152600401610a21906137df565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612449565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612b7957506001600160e01b03198216635b5e139f60e01b145b8061092157506301ffc9a760e01b6001600160e01b0319831614610921565b6001600160a01b038216612bee5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a21565b612bf781612167565b15612c435760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610a21565b612c4f60008383612a3c565b6001600160a01b0382166000908152600360205260408120805460019290612c789084906133d6565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051839290600080516020613919833981519152908290a45050565b6001600160a01b038316612d1f57612d1a81600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b612d42565b816001600160a01b0316836001600160a01b031614612d4257612d428382612d7c565b6001600160a01b038216612d5957610afc81612e19565b826001600160a01b0316826001600160a01b031614610afc57610afc8282612ec8565b60006001612d8984611182565b612d939190613635565b600083815260086020526040902054909150808214612de6576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b600954600090612e2b90600190613635565b6000838152600a602052604081205460098054939450909284908110612e5357612e5361347b565b906000526020600020015490508060098381548110612e7457612e7461347b565b6000918252602080832090910192909255828152600a90915260408082208490558582528120556009805480612eac57612eac61389f565b6001900381819060005260206000200160009055905550505050565b6000612ed383611182565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160e01b031981168114610cd957600080fd5b600060208284031215612f3457600080fd5b8135611c7781612f0c565b60005b83811015612f5a578181015183820152602001612f42565b50506000910152565b60008151808452612f7b816020860160208601612f3f565b601f01601f19169290920160200192915050565b602081526000611c776020830184612f63565b600060208284031215612fb457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b80356001600160a01b0381168114612fe657600080fd5b919050565b60008060408385031215612ffe57600080fd5b61300783612fcf565b946020939093013593505050565b60006020828403121561302757600080fd5b611c7782612fcf565b60008060006060848603121561304557600080fd5b61304e84612fcf565b925061305c60208501612fcf565b9150604084013590509250925092565b6000806040838503121561307f57600080fd5b50508035926020909101359150565b600080602083850312156130a157600080fd5b82356001600160401b03808211156130b857600080fd5b818501915085601f8301126130cc57600080fd5b8135818111156130db57600080fd5b8660208260051b85010111156130f057600080fd5b60209290920196919550909350505050565b6000806040838503121561311557600080fd5b61311e83612fcf565b915060208301356001600160601b038116811461313a57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561317557613175613145565b604051601f8501601f19908116603f0116810190828211818310171561319d5761319d613145565b816040528093508581528686860111156131b657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156131e257600080fd5b81356001600160401b038111156131f857600080fd5b8201601f8101841361320957600080fd5b6124498482356020840161315b565b6020808252825182820181905260009190848201906040850190845b8181101561325057835183529284019291840191600101613234565b50909695505050505050565b6000806040838503121561326f57600080fd5b61327883612fcf565b91506020830135801515811461313a57600080fd5b600080600080608085870312156132a357600080fd5b6132ac85612fcf565b93506132ba60208601612fcf565b92506040850135915060608501356001600160401b038111156132dc57600080fd5b8501601f810187136132ed57600080fd5b6132fc8782356020840161315b565b91505092959194509250565b6000806040838503121561331b57600080fd5b61332483612fcf565b915061333260208401612fcf565b90509250929050565b600181811c9082168061334f57607f821691505b60208210810361142357634e487b7160e01b600052602260045260246000fd5b6020808252600290820152616e6f60f01b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610921576109216133c0565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b8082028115828204841417610921576109216133c0565b634e487b7160e01b600052601260045260246000fd5b60008261347657613476613451565b500490565b634e487b7160e01b600052603260045260246000fd5b6020808252601a908201527943616e27742061646420746865206e756c6c206164647265737360301b604082015260600190565b6000600182016134d7576134d76133c0565b5060010190565b601f821115610afc57600081815260208120601f850160051c810160208610156135055750805b601f850160051c820191505b8181101561352457828155600101613511565b505050505050565b81516001600160401b0381111561354557613545613145565b61355981613553845461333b565b846134de565b602080601f83116001811461358e57600084156135765750858301515b600019600386901b1c1916600185901b178555613524565b600085815260208120601f198616915b828110156135bd5788860151825594840194600190910190840161359e565b50858210156135db5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602a908201527f507572636861736520776f756c6420657863656564206d617820737570706c79604082015269206f6620746f6b656e7360b01b606082015260800190565b81810381811115610921576109216133c0565b6020808252601d908201527f43616e27742072656d6f766520746865206e756c6c2061646472657373000000604082015260600190565b6020808252601f908201527f596f7520617265206e6f74206f6e207468652050726573616c65204c69737400604082015260600190565b6020808252602a908201527f43616e206f6e6c79206d696e7420756e646572206d6178546f6b656e507572636040820152691a185cd94818dbdd5b9d60b21b606082015260800190565b6020808252601c908201527b141d5c98da185cd948195e18d959591cc81b585e08185b1b1bddd95960221b604082015260600190565b6020808252601f908201527f45746865722076616c75652073656e74206973206e6f7420636f727265637400604082015260600190565b9182526001600160a01b0316602082015260400190565b60008351613796818460208801612f3f565b8351908301906137aa818360208801612f3f565b64173539b7b760d91b9101908152600501949350505050565b600082516137d5818460208701612f3f565b9190910192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008261384057613840613451565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061387890830184612f63565b9695505050505050565b60006020828403121561389457600080fd5b8151611c7781612f0c565b634e487b7160e01b600052603160045260246000fdfe04e35b89c0775d030c2340c76255d2cbfcae03ae37c6946e39aa77e9ea349a00697066733a2f2f62616679626569626e786f6577717578333679697075626d6f66716a657371666932706b646c34696a68677776627766666432726d757572637a652fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122015c29b4446bb56f45206448008d98476d7519b220e10b2d56e3ec8f14908367764736f6c63430008140033