Overview ERC20
PRICE
n/a

ON-CHAIN MARKET CAP n/a

Total Supply:
7,750,000.00 PLANE

Holders:
16
Profile Summary
Blockchain:
Blast Sepolia (168587773)


Decimals:
18
Contract Source Code Verified (Partial Match)
Contract Name:
PlaneToken

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Created At:
Wed, 27 Mar 2024 06:02:06 GMT
Ownable.sol
@openzeppelin
contracts
access
Ownable.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxSupply_",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "initialSupply",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "initialEmissionRate",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "treasuryAddress_",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "masterShare",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "treasuryShare",
        "type": "uint256"
      }
    ],
    "name": "AllocationsDistributed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "ClaimMasterRewards",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "oldCollector",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "newCollector",
        "type": "address"
      }
    ],
    "name": "CollectorshipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "startTime",
        "type": "uint256"
      }
    ],
    "name": "InitializeEmissionStart",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "masterAddress",
        "type": "address"
      }
    ],
    "name": "InitializeMasterAddress",
    "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": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "farmingAllocation",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "legacyAllocation",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "treasuryAllocation",
        "type": "uint256"
      }
    ],
    "name": "UpdateAllocations",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "previousEmissionRate",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newEmissionRate",
        "type": "uint256"
      }
    ],
    "name": "UpdateEmissionRate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "previousMaxSupply",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newMaxSupply",
        "type": "uint256"
      }
    ],
    "name": "UpdateMaxSupply",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "previousTreasuryAddress",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "newTreasuryAddress",
        "type": "address"
      }
    ],
    "name": "UpdateTreasuryAddress",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "ALLOCATION_PRECISION",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "BLAST",
    "outputs": [
      {
        "internalType": "contract IBlast",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "BLASTPOINTS",
    "outputs": [
      {
        "internalType": "contract IBlastPoints",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "BURN_ADDRESS",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_EMISSION_RATE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_SUPPLY_LIMIT",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "USDBBLAST",
    "outputs": [
      {
        "internalType": "contract IERC20Rebasing",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "WETHBLAST",
    "outputs": [
      {
        "internalType": "contract IERC20Rebasing",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "claimMasterRewards",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "effectiveAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "claimWethAndUsdbYield",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "collector",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "subtractedValue",
        "type": "uint256"
      }
    ],
    "name": "decreaseAllowance",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "elasticMaxSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "emissionRate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "emitAllocations",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "farmingAllocation",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "addedValue",
        "type": "uint256"
      }
    ],
    "name": "increaseAllowance",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "startTime",
        "type": "uint256"
      }
    ],
    "name": "initializeEmissionStart",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "masterAddress_",
        "type": "address"
      }
    ],
    "name": "initializeMasterAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lastEmissionTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "legacyAllocation",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "masterAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "masterAllocation",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "masterEmissionRate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "masterReserve",
    "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": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_collector",
        "type": "address"
      }
    ],
    "name": "setCollector",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "treasuryAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "treasuryAllocation",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "farmingAllocation_",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "legacyAllocation_",
        "type": "uint256"
      }
    ],
    "name": "updateAllocations",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "emissionRate_",
        "type": "uint256"
      }
    ],
    "name": "updateEmissionRate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxSupply_",
        "type": "uint256"
      }
    ],
    "name": "updateMaxSupply",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "treasuryAddress_",
        "type": "address"
      }
    ],
    "name": "updateTreasuryAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
60806040526055600b553480156200001657600080fd5b506040516200280438038062002804833981810160405260808110156200003c57600080fd5b50805160208083015160408085015160609095015181518083018352600c81526b283630b730b9102a37b5b2b760a11b8186015282518084019093526005835264504c414e4560d81b948301949094529394919391929060006200009f62000590565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508151620000fe9060049060208501906200070e565b508051620001149060059060208401906200070e565b50506006805460ff19166012179055506040805163784c3b3d60e11b815290517343000000000000000000000000000000000000029163f098767a91600480830192600092919082900301818387803b1580156200017157600080fd5b505af115801562000186573d6000803e3d6000fd5b505050507343000000000000000000000000000000000000026001600160a01b0316634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620001da57600080fd5b505af1158015620001ef573d6000803e3d6000fd5b505060408051631d70c8d360e31b81523360048201529051734300000000000000000000000000000000000002935063eb8646989250602480830192600092919082900301818387803b1580156200024657600080fd5b505af11580156200025b573d6000803e3d6000fd5b5050604051631a33757d60e01b81527342000000000000000000000000000000000000239250631a33757d915060029060040180828152602001915050602060405180830381600087803b158015620002b357600080fd5b505af1158015620002c8573d6000803e3d6000fd5b505050506040513d6020811015620002df57600080fd5b5050604051631a33757d60e01b815273420000000000000000000000000000000000002290631a33757d9060029060040180828152602001915050602060405180830381600087803b1580156200033557600080fd5b505af11580156200034a573d6000803e3d6000fd5b505050506040513d60208110156200036157600080fd5b5050604080516336b91f2b60e01b81523360048201529051732fc95838c71e76ec69ff817983bff17c710f34e0916336b91f2b91602480830192600092919082900301818387803b158015620003b657600080fd5b505af1158015620003cb573d6000803e3d6000fd5b505060068054610100600160a81b0319163361010002179055505066b1a2bc2ec5000082111562000443576040805162461bcd60e51b815260206004820152601560248201527f696e76616c696420656d697373696f6e20726174650000000000000000000000604482015290519081900360640190fd5b6a084595161401484a000000841115620004a4576040805162461bcd60e51b815260206004820152601960248201527f696e76616c696420696e697469616c206d6178537570706c7900000000000000604482015290519081900360640190fd5b838310620004f9576040805162461bcd60e51b815260206004820152601660248201527f696e76616c696420696e697469616c20737570706c7900000000000000000000604482015290519081900360640190fd5b6001600160a01b03811662000555576040805162461bcd60e51b815260206004820152601860248201527f696e76616c696420747265617375727920616464726573730000000000000000604482015290519081900360640190fd5b60078490556008829055600e80546001600160a01b0319166001600160a01b03831617905562000586338462000594565b50505050620007ba565b3390565b6001600160a01b038216620005f0576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620005fe60008383620006a7565b6200061a81600354620006ac60201b6200175c1790919060201c565b6003556001600160a01b0382166000908152600160209081526040909120546200064f9183906200175c620006ac821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b505050565b60008282018381101562000707576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000746576000855562000791565b82601f106200076157805160ff191683800117855562000791565b8280016001018555821562000791579182015b828111156200079157825182559160200191906001019062000774565b506200079f929150620007a3565b5090565b5b808211156200079f5760008155600101620007a4565b61203a80620007ca6000396000f3fe608060405234801561001057600080fd5b506004361061027e5760003560e01c8063781357051161015c578063b71144a4116100ce578063ed424fd011610087578063ed424fd014610646578063f103b4331461064e578063f2fde38b1461066b578063fb5b82d014610691578063fc1852fb146106b7578063fccc2813146106d45761027e565b8063b71144a4146105d5578063c5f956af146105f8578063c68bb4c514610600578063d365a08e14610608578063dd62ed3e14610610578063e4ef9dce1461063e5761027e565b806395d89b411161012057806395d89b411461055d57806396afc4501461056557806397d757761461056d578063a457c2d714610575578063a9059cbb146105a1578063b10c8fb9146105cd5761027e565b80637813570514610502578063841e45611461051f5780638da5cb5b146105455780638f88bba31461054d578063913e77ad146105555761027e565b806342966c68116101f557806360cfe755116101b957806360cfe7551461047a578063617d11261461049e57806367c0f278146104a657806370a08231146104cc578063715018a6146104f2578063728e616f146104fa5761027e565b806342966c6814610419578063436cc3d614610436578063439af45e1461043e57806348045e11146104465780634f3147ba146104725761027e565b806318160ddd1161024757806318160ddd1461038157806323b872dd1461038957806327dede2d146103bf578063313ce567146103c757806339509351146103e557806339eb4189146104115761027e565b80624fbf6b146102835780630495d11c1461029d57806306fdde03146102a5578063095ea7b3146103225780630ba84cd214610362575b600080fd5b61028b6106dc565b60408051918252519081900360200190f35b61028b6106e1565b6102ad6106e7565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e75781810151838201526020016102cf565b50505050905090810190601f1680156103145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61034e6004803603604081101561033857600080fd5b506001600160a01b03813516906020013561077d565b604080519115158252519081900360200190f35b61037f6004803603602081101561037857600080fd5b503561079b565b005b61028b61088d565b61034e6004803603606081101561039f57600080fd5b506001600160a01b03813581169160208101359091169060400135610893565b61028b61091a565b6103cf610920565b6040805160ff9092168252519081900360200190f35b61034e600480360360408110156103fb57600080fd5b506001600160a01b038135169060200135610929565b61028b610977565b61037f6004803603602081101561042f57600080fd5b50356109ac565b61028b6109bc565b61028b6109c7565b61037f6004803603604081101561045c57600080fd5b506001600160a01b0381351690602001356109cd565b61028b610b23565b610482610b38565b604080516001600160a01b039092168252519081900360200190f35b61028b610b43565b61037f600480360360208110156104bc57600080fd5b50356001600160a01b0316610b52565b61028b600480360360208110156104e257600080fd5b50356001600160a01b0316610c95565b61037f610cb4565b610482610d60565b61028b6004803603602081101561051857600080fd5b5035610d78565b61037f6004803603602081101561053557600080fd5b50356001600160a01b0316610e44565b610482610f55565b61028b610f64565b610482610f6a565b6102ad610f7e565b61028b610fdf565b610482610fe5565b61034e6004803603604081101561058b57600080fd5b506001600160a01b038135169060200135610ff0565b61034e600480360360408110156105b757600080fd5b506001600160a01b038135169060200135611058565b61048261106c565b61037f600480360360408110156105eb57600080fd5b5080359060200135611077565b610482611186565b61028b611195565b6104826111ae565b61028b6004803603604081101561062657600080fd5b506001600160a01b03813581169160200135166111bd565b61037f6111e8565b61028b611320565b61037f6004803603602081101561066457600080fd5b5035611326565b61037f6004803603602081101561068157600080fd5b50356001600160a01b031661145a565b61037f600480360360208110156106a757600080fd5b50356001600160a01b031661155c565b61037f600480360360208110156106cd57600080fd5b503561161f565b610482611756565b606481565b600c5481565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107735780601f1061074857610100808354040283529160200191610773565b820191906000526020600020905b81548152906001019060200180831161075657829003601f168201915b5050505050905090565b600061079161078a6117bd565b84846117c1565b5060015b92915050565b6107a36117bd565b6001600160a01b03166107b4610f55565b6001600160a01b0316146107fd576040805162461bcd60e51b81526020600482018190526024820152600080516020611e6c833981519152604482015290519081900360640190fd5b66b1a2bc2ec500008111156108435760405162461bcd60e51b8152600401808060200182810382526028815260200180611f376028913960400191505060405180910390fd5b61084b6111e8565b600854604080519182526020820183905280517f16b9091836a63537907593ebc3a80f3528891f3575b10f58ad7dd9c29fd0d44f9281900390910190a1600855565b60035490565b60006108a08484846118ad565b610910846108ac6117bd565b61090b85604051806060016040528060288152602001611e44602891396001600160a01b038a166000908152600260205260408120906108ea6117bd565b6001600160a01b031681526020810191909152604001600020549190611a0a565b6117c1565b5060019392505050565b600a5481565b60065460ff1690565b60006107916109366117bd565b8461090b85600260006109476117bd565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061175c565b60006109a760646109a1610998600c54600b5461175c90919063ffffffff16565b60085490611aa1565b90611afa565b905090565b6109b93361dead836118ad565b50565b66b1a2bc2ec5000081565b60095481565b60065461010090046001600160a01b03163314610a1b5760405162461bcd60e51b8152600401808060200182810382526022815260200180611f836022913960400191505060405180910390fd5b60408051635569f64b60e11b81526001600160a01b03841660048201526024810183905290516023602160991b019163aad3ec969160448083019260209291908290030181600087803b158015610a7157600080fd5b505af1158015610a85573d6000803e3d6000fd5b505050506040513d6020811015610a9b57600080fd5b505060408051635569f64b60e11b81526001600160a01b03841660048201526024810183905290516022602160991b019163aad3ec969160448083019260209291908290030181600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b505050506040513d6020811015610b1d57600080fd5b50505050565b60006109a7610b30611195565b606490611b61565b6023602160991b0181565b6a084595161401484a00000081565b610b5a6117bd565b6001600160a01b0316610b6b610f55565b6001600160a01b031614610bb4576040805162461bcd60e51b81526020600482018190526024820152600080516020611e6c833981519152604482015290519081900360640190fd5b600d546001600160a01b031615610bfc5760405162461bcd60e51b8152600401808060200182810382526033815260200180611f046033913960400191505060405180910390fd5b6001600160a01b038116610c415760405162461bcd60e51b815260040180806020018281038252603b815260200180611de8603b913960400191505060405180910390fd5b600d80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fcba13eb1e65d2c1588ce6d10f862f4535cc67855c3f31e3d2732f8fb6b5317b29181900360200190a150565b6001600160a01b0381166000908152600160205260409020545b919050565b610cbc6117bd565b6001600160a01b0316610ccd610f55565b6001600160a01b031614610d16576040805162461bcd60e51b81526020600482018190526024820152600080516020611e6c833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b732fc95838c71e76ec69ff817983bff17c710f34e081565b600d546000906001600160a01b03163314610dc45760405162461bcd60e51b8152600401808060200182810382526024815260200180611f5f6024913960400191505060405180910390fd5b610dcc6111e8565b610dd8600a5483611bbe565b905080610de457610caf565b600a54610df19082611b61565b600a55600d54610e0c9030906001600160a01b0316836118ad565b6040805182815290517f45102e9ef2c4f14fd9f3e8510c4bb2ad67fe498584602f26647da23039f125319181900360200190a1919050565b610e4c6117bd565b6001600160a01b0316610e5d610f55565b6001600160a01b031614610ea6576040805162461bcd60e51b81526020600482018190526024820152600080516020611e6c833981519152604482015290519081900360640190fd5b6001600160a01b038116610eeb5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d836026913960400191505060405180910390fd5b600e54604080516001600160a01b039283168152918316602083015280517f5634a90413b79beba6c5f37aa8f19d1aee84a5320ff20ac7bd1ac63280867d5c9281900390910190a1600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b600b5481565b60065461010090046001600160a01b031681565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107735780601f1061074857610100808354040283529160200191610773565b60085481565b6002604360981b0181565b6000610791610ffd6117bd565b8461090b85604051806060016040528060258152602001611fe060259139600260006110276117bd565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a0a565b60006107916110656117bd565b84846118ad565b6022602160991b0181565b61107f6117bd565b6001600160a01b0316611090610f55565b6001600160a01b0316146110d9576040805162461bcd60e51b81526020600482018190526024820152600080516020611e6c833981519152604482015290519081900360640190fd5b6110e16111e8565b60006110ed838361175c565b9050606481111561112f5760405162461bcd60e51b815260040180806020018281038252602f815260200180611eb1602f913960400191505060405180910390fd5b600b839055600c8290557fa4a1bde80c0d4ba37d1bd0feec135fb515a9def4e8baee90221348069946b86c8383611164610b23565b60408051938452602084019290925282820152519081900360600190a1505050565b600e546001600160a01b031681565b60006109a7600c54600b5461175c90919063ffffffff16565b600d546001600160a01b031681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006111f261088d565b905060006111fe611bd4565b600954600754919250908183111580611215575081155b15611223575050505061131e565b83811115806112325750600854155b156112425750506009555061131e565b60085460009061125c906112568686611b61565b90611aa1565b9050611268858261175c565b82101561127c576112798286611b61565b90505b600061129560646109a161128e611195565b8590611aa1565b905060006112a38383611b61565b6009879055600a549091506112b8908361175c565b600a556112c53083611bd8565b600e546112db906001600160a01b031682611bd8565b604080518381526020810183905281517f26c155e7637ca49a34c19c7f8cb8533322897de0808134df1a98f71557111684929181900390910190a1505050505050505b565b60075481565b61132e6117bd565b6001600160a01b031661133f610f55565b6001600160a01b031614611388576040805162461bcd60e51b81526020600482018190526024820152600080516020611e6c833981519152604482015290519081900360640190fd5b61139061088d565b8110156113ce5760405162461bcd60e51b815260040180806020018281038252603f815260200180611da9603f913960400191505060405180910390fd5b6a084595161401484a0000008111156114185760405162461bcd60e51b8152600401808060200182810382526022815260200180611d3b6022913960400191505060405180910390fd5b600754604080519182526020820183905280517f6a84334bf6663b783f2bbfcaf459b2cbc73570cf346a46d9e6a0f290fcf3ebfc9281900390910190a1600755565b6114626117bd565b6001600160a01b0316611473610f55565b6001600160a01b0316146114bc576040805162461bcd60e51b81526020600482018190526024820152600080516020611e6c833981519152604482015290519081900360640190fd5b6001600160a01b0381166115015760405162461bcd60e51b8152600401808060200182810382526026815260200180611cf36026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b031633146115aa5760405162461bcd60e51b8152600401808060200182810382526022815260200180611f836022913960400191505060405180910390fd5b600654604080516001600160a01b0361010090930483168152918316602083015280517fd992b87b06713a04c5806924ee3c29dbf04a04144c28c14fd6818e161bbd9a589281900390910190a1600680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6116276117bd565b6001600160a01b0316611638610f55565b6001600160a01b031614611681576040805162461bcd60e51b81526020600482018190526024820152600080516020611e6c833981519152604482015290519081900360640190fd5b600954156116c05760405162461bcd60e51b815260040180806020018281038252603b815260200180611fa5603b913960400191505060405180910390fd5b806116c9611bd4565b1061171b576040805162461bcd60e51b815260206004820181905260248201527f696e697469616c697a65456d697373696f6e53746172743a20696e76616c6964604482015290519081900360640190fd5b60098190556040805182815290517f10e116be9bb4f621259f592ccd7e00d783e796535f2a5f3bc91a79da0fc3456d9181900360200190a150565b61dead81565b6000828201838110156117b6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b0383166118065760405162461bcd60e51b8152600401808060200182810382526024815260200180611ee06024913960400191505060405180910390fd5b6001600160a01b03821661184b5760405162461bcd60e51b8152600401808060200182810382526022815260200180611d196022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118f25760405162461bcd60e51b8152600401808060200182810382526025815260200180611e8c6025913960400191505060405180910390fd5b6001600160a01b0382166119375760405162461bcd60e51b8152600401808060200182810382526023815260200180611cd06023913960400191505060405180910390fd5b611942838383611cca565b61197f81604051806060016040528060268152602001611d5d602691396001600160a01b0386166000908152600160205260409020549190611a0a565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546119ae908261175c565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a995760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082611ab057506000610795565b82820282848281611abd57fe5b04146117b65760405162461bcd60e51b8152600401808060200182810382526021815260200180611e236021913960400191505060405180910390fd5b6000808211611b50576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611b5957fe5b049392505050565b600082821115611bb8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000818310611bcd57816117b6565b5090919050565b4290565b6001600160a01b038216611c33576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611c3f60008383611cca565b600354611c4c908261175c565b6003556001600160a01b038216600090815260016020526040902054611c72908261175c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573737570646174654d6178537570706c793a20696e76616c6964206d6178537570706c7945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63657570646174655472656173757279416464726573733a20696e76616c696420616464726573737570646174654d6178537570706c793a2063616e2774206265206c6f776572207468616e2063757272656e742063697263756c6174696e6720737570706c79696e697469616c697a654d6173746572416464726573733a206d617374657220696e697469616c697a656420746f207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373757064617465416c6c6f636174696f6e733a20746f74616c20616c6c6f636174696f6e20697320746f6f206869676845524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373696e697469616c697a654d6173746572416464726573733a206d617374657220616c726561647920696e697469616c697a6564757064617465456d697373696f6e526174653a2063616e277420657863656564206d6178696d756d506c616e65546f6b656e3a2063616c6c6572206973206e6f7420746865206d6173746572426c6173743a2063616c6c6572206973206e6f742074686520636f6c6c6563746f72696e697469616c697a65456d697373696f6e53746172743a20656d697373696f6e20737461727420616c726561647920696e697469616c697a656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d3f75485b323ccce9f3646df5d6e7818673218f451801c937ddec47809bfb80364736f6c63430007060033000000000000000000000000000000000000000000084595161401484a0000000000000000000000000000000000000000000000000669205782b4319fc0000000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000919d64eb3fd67879ea34e9e512979fe9710066d4