Overview ERC20
PRICE
$0.00155586 @ 0.0000004693 ETH (-6.17%)

ON-CHAIN MARKET CAP $1,542,912.12

Total Supply:
1,000,000,000.00 BENI

Holders:
80,149
Profile Summary
Blockchain:
Base (8453)


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

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No

Created At:
Fri, 29 Mar 2024 21:22:59 GMT
BENI.sol
BENI.sol
BENI.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "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": "buyTaxTotal",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "buyMarketingTax",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "buyProjectTax",
        "type": "uint256"
      }
    ],
    "name": "BuyFeeUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "DisabledTransferDelay",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "isExcluded",
        "type": "bool"
      }
    ],
    "name": "ExcludeFromFees",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "isExcluded",
        "type": "bool"
      }
    ],
    "name": "ExcludeFromLimits",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "LimitsRemoved",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "newWallet",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldWallet",
        "type": "address"
      }
    ],
    "name": "MarketingWalletUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "maxTx",
        "type": "uint256"
      }
    ],
    "name": "MaxTxUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "maxWallet",
        "type": "uint256"
      }
    ],
    "name": "MaxWalletUpdated",
    "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": "newWallet",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldWallet",
        "type": "address"
      }
    ],
    "name": "ProjectWalletUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "sellTaxTotal",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "sellMarketingTax",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "sellProjectTax",
        "type": "uint256"
      }
    ],
    "name": "SellFeeUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "pair",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "bool",
        "name": "value",
        "type": "bool"
      }
    ],
    "name": "SetAutomatedMarketMakerPair",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "swapBackValueMin",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "swapBackValueMax",
        "type": "uint256"
      }
    ],
    "name": "SwapbackSettingsUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "TradingEnabled",
    "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": true,
        "internalType": "address",
        "name": "newAddress",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldAddress",
        "type": "address"
      }
    ],
    "name": "UpdateUniswapV2Router",
    "type": "event"
  },
  {
    "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": "address",
        "name": "newWallet",
        "type": "address"
      }
    ],
    "name": "changeFeeReceiverMarketing",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newWallet",
        "type": "address"
      }
    ],
    "name": "changeFeeReceiverProject",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_target",
        "type": "address"
      }
    ],
    "name": "checkMappings",
    "outputs": [
      {
        "internalType": "bool",
        "name": "_transferTaxExempt",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "_transferLimitExempt",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "_automatedMarketMakerPairs",
        "type": "bool"
      }
    ],
    "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": "dexPair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "disableDelayTransfers",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "enableLaunch",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "excluded",
        "type": "bool"
      }
    ],
    "name": "feeWL",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "address",
        "name": "updAds",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "isEx",
        "type": "bool"
      }
    ],
    "name": "limitWL",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxTxValues",
    "outputs": [
      {
        "internalType": "bool",
        "name": "_limitsEnabled",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "_transferDelayEnabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_maxWallet",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_maxTx",
        "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": "receiverwallets",
    "outputs": [
      {
        "internalType": "address",
        "name": "_marketingWallet",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_projectWallet",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "rvmTradingLimits",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pair",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "value",
        "type": "bool"
      }
    ],
    "name": "setAutomatedMarketMakerPair",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_marketingFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_devFee",
        "type": "uint256"
      }
    ],
    "name": "setBuyingFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_min",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_max",
        "type": "uint256"
      }
    ],
    "name": "setRangeSwapback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_marketingFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_devFee",
        "type": "uint256"
      }
    ],
    "name": "setSellingFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newNum",
        "type": "uint256"
      }
    ],
    "name": "setTxLimitMax",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newNum",
        "type": "uint256"
      }
    ],
    "name": "setWalletLimitMax",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapbackValues",
    "outputs": [
      {
        "internalType": "bool",
        "name": "_swapbackEnabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_swapBackValueMin",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_swapBackValueMax",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "taxValues",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_buyTaxTotal",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_buyMarketingTax",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_buyProjectTax",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_sellTaxTotal",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_sellMarketingTax",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_sellProjectTax",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tradingEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "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"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60c06040526000600560156101000a81548160ff0219169083151502179055506001600860006101000a81548160ff0219169083151502179055506001600860016101000a81548160ff0219169083151502179055506000600c60006101000a81548160ff0219169083151502179055503480156200007d57600080fd5b506040518060400160405280600481526020017f42656e69000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f42454e49000000000000000000000000000000000000000000000000000000008152508160039081620000fb919062000f3a565b5080600490816200010d919062000f3a565b50505062000130620001246200061360201b60201c565b6200061b60201b60201c565b6000734752ba5dbc23f44d87826276bf6fd6b1c372ad2490506200015c816001620006e160201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020291906200108b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029091906200108b565b6040518363ffffffff1660e01b8152600401620002af929190620010ce565b6020604051808303816000875af1158015620002cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f591906200108b565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033d60a0516001620006e160201b60201c565b6200035260a05160016200081b60201b60201c565b6000601e9050600080601e905060008062000372620008bc60201b60201c565b600a6200038091906200128b565b633b9aca00620003919190620012dc565b90506103e8600a82620003a59190620012dc565b620003b1919062001356565b600a819055506103e8600a82620003c99190620012dc565b620003d5919062001356565b6009819055506103e8600182620003ed9190620012dc565b620003f9919062001356565b6006819055506064600282620004109190620012dc565b6200041c919062001356565b60078190555084600f8190555083601081905550601054600f546200044291906200138e565b600e8190555082601281905550816013819055506013546012546200046891906200138e565b601181905550733ee75fcf3699ab3d175aa385959a41425756ebf1600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000517336001620008c560201b60201c565b6200052a306001620008c560201b60201c565b6200053f61dead6001620008c560201b60201c565b62000574600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008c560201b60201c565b62000587336001620006e160201b60201c565b6200059a306001620006e160201b60201c565b620005af61dead6001620006e160201b60201c565b620005e4600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006e160201b60201c565b620005f533620009ff60201b60201c565b62000607338262000b1460201b60201c565b505050505050620015be565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006f16200061360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200071762000c8c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000767906200142a565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc92826040516200080f919062001469565b60405180910390a25050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006012905090565b620008d56200061360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008fb62000c8c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000954576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200094b906200142a565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620009f3919062001469565b60405180910390a25050565b62000a0f6200061360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000a3562000c8c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a85906200142a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000af790620014fc565b60405180910390fd5b62000b11816200061b60201b60201c565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b7d906200156e565b60405180910390fd5b62000b9a6000838362000cb660201b60201c565b806002600082825462000bae91906200138e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000c0591906200138e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c6c9190620015a1565b60405180910390a362000c886000838362000cbb60201b60201c565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d4257607f821691505b60208210810362000d585762000d5762000cfa565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000dc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d83565b62000dce868362000d83565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e1b62000e1562000e0f8462000de6565b62000df0565b62000de6565b9050919050565b6000819050919050565b62000e378362000dfa565b62000e4f62000e468262000e22565b84845462000d90565b825550505050565b600090565b62000e6662000e57565b62000e7381848462000e2c565b505050565b5b8181101562000e9b5762000e8f60008262000e5c565b60018101905062000e79565b5050565b601f82111562000eea5762000eb48162000d5e565b62000ebf8462000d73565b8101602085101562000ecf578190505b62000ee762000ede8562000d73565b83018262000e78565b50505b505050565b600082821c905092915050565b600062000f0f6000198460080262000eef565b1980831691505092915050565b600062000f2a838362000efc565b9150826002028217905092915050565b62000f458262000cc0565b67ffffffffffffffff81111562000f615762000f6062000ccb565b5b62000f6d825462000d29565b62000f7a82828562000e9f565b600060209050601f83116001811462000fb2576000841562000f9d578287015190505b62000fa9858262000f1c565b86555062001019565b601f19841662000fc28662000d5e565b60005b8281101562000fec5784890151825560018201915060208501945060208101905062000fc5565b868310156200100c578489015162001008601f89168262000efc565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010538262001026565b9050919050565b620010658162001046565b81146200107157600080fd5b50565b60008151905062001085816200105a565b92915050565b600060208284031215620010a457620010a362001021565b5b6000620010b48482850162001074565b91505092915050565b620010c88162001046565b82525050565b6000604082019050620010e56000830185620010bd565b620010f46020830184620010bd565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200118957808604811115620011615762001160620010fb565b5b6001851615620011715780820291505b808102905062001181856200112a565b945062001141565b94509492505050565b600082620011a4576001905062001277565b81620011b4576000905062001277565b8160018114620011cd5760028114620011d8576200120e565b600191505062001277565b60ff841115620011ed57620011ec620010fb565b5b8360020a915084821115620012075762001206620010fb565b5b5062001277565b5060208310610133831016604e8410600b8410161715620012485782820a905083811115620012425762001241620010fb565b5b62001277565b62001257848484600162001137565b92509050818404811115620012715762001270620010fb565b5b81810290505b9392505050565b600060ff82169050919050565b6000620012988262000de6565b9150620012a5836200127e565b9250620012d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001192565b905092915050565b6000620012e98262000de6565b9150620012f68362000de6565b9250828202620013068162000de6565b9150828204841483151762001320576200131f620010fb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620013638262000de6565b9150620013708362000de6565b92508262001383576200138262001327565b5b828204905092915050565b60006200139b8262000de6565b9150620013a88362000de6565b9250828201905080821115620013c357620013c2620010fb565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062001412602083620013c9565b91506200141f82620013da565b602082019050919050565b60006020820190508181036000830152620014458162001403565b9050919050565b60008115159050919050565b62001463816200144c565b82525050565b600060208201905062001480600083018462001458565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620014e4602683620013c9565b9150620014f18262001486565b604082019050919050565b600060208201905081810360008301526200151781620014d5565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001556601f83620013c9565b915062001563826200151e565b602082019050919050565b60006020820190508181036000830152620015898162001547565b9050919050565b6200159b8162000de6565b82525050565b6000602082019050620015b8600083018462001590565b92915050565b60805160a051614aa5620016076000396000818161148401528181611c9001526124900152600081816124380152818161338501528181613466015261348d0152614aa56000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063b377f429116100a0578063f242ab411161006f578063f242ab411461072f578063f2fde38b1461075a578063f3dc390214610783578063fab82a8e146107b3578063ff5211bb146107df57610204565b8063b377f42914610673578063b435ea791461068a578063dd62ed3e146106b3578063e13b2007146106f057610204565b8063a457c2d7116100dc578063a457c2d7146105a7578063a9059cbb146105e4578063afaac7fc14610621578063b015b91f1461064a57610204565b80638da5cb5b1461051157806395d89b411461053c5780639a19c3f8146105675780639a7a23d61461057e57610204565b806339509351116101905780635bbb673c1161015f5780635bbb673c1461043e57806370a0823114610467578063715018a6146104a457806377b5312c146104bb5780638cdeeb98146104e857610204565b8063395093511461038457806340d5a0d3146103c15780634ada218b146103ea57806357c64b281461041557610204565b80632ff8ef4d116101cc5780632ff8ef4d146102d9578063313ce5671461030257806331f815111461032d578063340527891461035b57610204565b806306fdde0314610209578063095ea7b31461023457806318160ddd1461027157806323b872dd1461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107f6565b60405161022b91906135c9565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190613684565b610888565b60405161026891906136df565b60405180910390f35b34801561027d57600080fd5b506102866108a6565b6040516102939190613709565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be9190613724565b6108b0565b6040516102d091906136df565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb91906137a3565b6109a8565b005b34801561030e57600080fd5b50610317610acd565b60405161032491906137ff565b60405180910390f35b34801561033957600080fd5b50610342610ad6565b604051610352949392919061381a565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d919061385f565b610b10565b005b34801561039057600080fd5b506103ab60048036038101906103a69190613684565b610c32565b6040516103b891906136df565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e3919061388c565b610cde565b005b3480156103f657600080fd5b506103ff610e09565b60405161040c91906136df565b60405180910390f35b34801561042157600080fd5b5061043c600480360381019061043791906137a3565b610e1c565b005b34801561044a57600080fd5b506104656004803603810190610460919061385f565b610f41565b005b34801561047357600080fd5b5061048e600480360381019061048991906138cc565b611063565b60405161049b9190613709565b60405180910390f35b3480156104b057600080fd5b506104b96110ab565b005b3480156104c757600080fd5b506104d0611133565b6040516104df939291906138f9565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a919061388c565b611159565b005b34801561051d57600080fd5b50610526611284565b604051610533919061393f565b60405180910390f35b34801561054857600080fd5b506105516112ae565b60405161055e91906135c9565b60405180910390f35b34801561057357600080fd5b5061057c611340565b005b34801561058a57600080fd5b506105a560048036038101906105a091906137a3565b611406565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190613684565b61151e565b6040516105db91906136df565b60405180910390f35b3480156105f057600080fd5b5061060b60048036038101906106069190613684565b611609565b60405161061891906136df565b60405180910390f35b34801561062d57600080fd5b50610648600480360381019061064391906138cc565b611627565b005b34801561065657600080fd5b50610671600480360381019061066c91906138cc565b611763565b005b34801561067f57600080fd5b5061068861189f565b005b34801561069657600080fd5b506106b160048036038101906106ac919061395a565b611965565b005b3480156106bf57600080fd5b506106da60048036038101906106d591906139ad565b611b0e565b6040516106e79190613709565b60405180910390f35b3480156106fc57600080fd5b50610717600480360381019061071291906138cc565b611b95565b604051610726939291906139ed565b60405180910390f35b34801561073b57600080fd5b50610744611c8e565b604051610751919061393f565b60405180910390f35b34801561076657600080fd5b50610781600480360381019061077c91906138cc565b611cb2565b005b34801561078f57600080fd5b50610798611da9565b6040516107aa96959493929190613a24565b60405180910390f35b3480156107bf57600080fd5b506107c8611dd8565b6040516107d6929190613a85565b60405180910390f35b3480156107eb57600080fd5b506107f4611e29565b005b60606003805461080590613add565b80601f016020809104026020016040519081016040528092919081815260200182805461083190613add565b801561087e5780601f106108535761010080835404028352916020019161087e565b820191906000526020600020905b81548152906001019060200180831161086157829003601f168201915b5050505050905090565b600061089c610895611f0a565b8484611f12565b6001905092915050565b6000600254905090565b60006108bd8484846120db565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610908611f0a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f90613b80565b60405180910390fd5b61099c85610994611f0a565b858403611f12565b60019150509392505050565b6109b0611f0a565b73ffffffffffffffffffffffffffffffffffffffff166109ce611284565b73ffffffffffffffffffffffffffffffffffffffff1614610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90613bec565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282604051610ac191906136df565b60405180910390a25050565b60006012905090565b600080600080600860009054906101000a900460ff169350600860019054906101000a900460ff1692506009549150600a54905090919293565b610b18611f0a565b73ffffffffffffffffffffffffffffffffffffffff16610b36611284565b73ffffffffffffffffffffffffffffffffffffffff1614610b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8390613bec565b60405180910390fd5b6002811015610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc790613c58565b60405180910390fd5b6103e8610bdb6108a6565b82610be69190613ca7565b610bf09190613d18565b600a819055507fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a600a54604051610c279190613709565b60405180910390a150565b6000610cd4610c3f611f0a565b848460016000610c4d611f0a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ccf9190613d49565b611f12565b6001905092915050565b610ce6611f0a565b73ffffffffffffffffffffffffffffffffffffffff16610d04611284565b73ffffffffffffffffffffffffffffffffffffffff1614610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5190613bec565b60405180910390fd5b8160128190555080601381905550601354601254610d789190613d49565b60118190555060646011541115610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb90613def565b60405180910390fd5b7fcb5f36df892836a2eaedc349de29a7581176990398ee185d16eaa8f6c1abd8f1601154601254601354604051610dfd93929190613e0f565b60405180910390a15050565b600c60009054906101000a900460ff1681565b610e24611f0a565b73ffffffffffffffffffffffffffffffffffffffff16610e42611284565b73ffffffffffffffffffffffffffffffffffffffff1614610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f90613bec565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610f3591906136df565b60405180910390a25050565b610f49611f0a565b73ffffffffffffffffffffffffffffffffffffffff16610f67611284565b73ffffffffffffffffffffffffffffffffffffffff1614610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490613bec565b60405180910390fd5b6005811015611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890613eb8565b60405180910390fd5b6103e861100c6108a6565b826110179190613ca7565b6110219190613d18565b6009819055507f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace6009546040516110589190613709565b60405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110b3611f0a565b73ffffffffffffffffffffffffffffffffffffffff166110d1611284565b73ffffffffffffffffffffffffffffffffffffffff1614611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111e90613bec565b60405180910390fd5b6111316000612d0c565b565b6000806000600560159054906101000a900460ff16925060065491506007549050909192565b611161611f0a565b73ffffffffffffffffffffffffffffffffffffffff1661117f611284565b73ffffffffffffffffffffffffffffffffffffffff16146111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc90613bec565b60405180910390fd5b81600f8190555080601081905550601054600f546111f39190613d49565b600e819055506064600e54111561123f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123690613f4a565b60405180910390fd5b7f38513c502b0ab4834ac1df9502b76f75dcf7092469782cfd0db7fe664388e25e600e54600f5460105460405161127893929190613e0f565b60405180910390a15050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112bd90613add565b80601f01602080910402602001604051908101604052809291908181526020018280546112e990613add565b80156113365780601f1061130b57610100808354040283529160200191611336565b820191906000526020600020905b81548152906001019060200180831161131957829003601f168201915b5050505050905090565b611348611f0a565b73ffffffffffffffffffffffffffffffffffffffff16611366611284565b73ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390613bec565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550427ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261660405160405180910390a2565b61140e611f0a565b73ffffffffffffffffffffffffffffffffffffffff1661142c611284565b73ffffffffffffffffffffffffffffffffffffffff1614611482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147990613bec565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790613fdc565b60405180910390fd5b61151a8282612dd2565b5050565b6000806001600061152d611f0a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e19061406e565b60405180910390fd5b6115fe6115f5611f0a565b85858403611f12565b600191505092915050565b600061161d611616611f0a565b84846120db565b6001905092915050565b61162f611f0a565b73ffffffffffffffffffffffffffffffffffffffff1661164d611284565b73ffffffffffffffffffffffffffffffffffffffff16146116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90613bec565b60405180910390fd5b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6760405160405180910390a380600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61176b611f0a565b73ffffffffffffffffffffffffffffffffffffffff16611789611284565b73ffffffffffffffffffffffffffffffffffffffff16146117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690613bec565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fb91dbdeaf34f885ccae2d8abc3967cb03c079b6af2c7944e3893fd29427d75e760405160405180910390a380600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118a7611f0a565b73ffffffffffffffffffffffffffffffffffffffff166118c5611284565b73ffffffffffffffffffffffffffffffffffffffff161461191b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191290613bec565b60405180910390fd5b6000600860016101000a81548160ff021916908315150217905550427f26e776fcf7ca20aa79b5b946e9b5111f47205539ece9d7a7995271dd6a8b5bad60405160405180910390a2565b61196d611f0a565b73ffffffffffffffffffffffffffffffffffffffff1661198b611284565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613bec565b60405180910390fd5b6001821015611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90614100565b60405180910390fd5b81811015611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f90614192565b60405180910390fd5b82600560156101000a81548160ff02191690831515021790555061271082611a8e6108a6565b611a989190613ca7565b611aa29190613d18565b60068190555061271081611ab46108a6565b611abe9190613ca7565b611ac89190613d18565b6007819055507f52cd2cdb42ff0eeec9362d7ed5b04f64c8d022697128b5378fc51cea7e63c779838383604051611b01939291906138f9565b60405180910390a1505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169250601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169150601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509193909250565b7f000000000000000000000000000000000000000000000000000000000000000081565b611cba611f0a565b73ffffffffffffffffffffffffffffffffffffffff16611cd8611284565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590613bec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490614224565b60405180910390fd5b611da681612d0c565b50565b600080600080600080600e549550600f5494506010549350601154925060125491506013549050909192939495565b600080600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b611e31611f0a565b73ffffffffffffffffffffffffffffffffffffffff16611e4f611284565b73ffffffffffffffffffffffffffffffffffffffff1614611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90613bec565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600560156101000a81548160ff021916908315150217905550427fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e92360405160405180910390a2565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f78906142b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790614348565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120ce9190613709565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361214a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612141906143da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b09061446c565b60405180910390fd5b600081036121d2576121cd83836000612e73565b612d07565b600860009054906101000a900460ff1615612895576121ef611284565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561225d575061222d611284565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122965750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122d0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122e95750600560149054906101000a900460ff16155b1561289457600c60009054906101000a900460ff166123e357601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123a35750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6123e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d9906144fe565b60405180910390fd5b5b600860019054906101000a900460ff16156125ab57612400611284565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561248757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124df57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125aa5743600b60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255c906145b6565b60405180910390fd5b43600b60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561264e5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126f557600a54811115612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f90614648565b60405180910390fd5b6009546126a483611063565b826126af9190613d49565b11156126f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e7906146b4565b60405180910390fd5b612893565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127985750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127e757600a548111156127e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d990614746565b60405180910390fd5b612892565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128915760095461284483611063565b8261284f9190613d49565b1115612890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612887906146b4565b60405180910390fd5b5b5b5b5b5b60006128a030611063565b9050600060065482101590508080156128c55750600560159054906101000a900460ff165b80156128de5750600560149054906101000a900460ff16155b80156129345750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561298a5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129e05750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a24576001600560146101000a81548160ff021916908315150217905550612a086130f2565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ada5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ae457600090505b60008115612cf757601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b4757506000601154115b15612be157612b746064612b66601154886132b090919063ffffffff16565b6132c690919063ffffffff16565b905060115460135482612b879190613ca7565b612b919190613d18565b60156000828254612ba29190613d49565b9250508190555060115460125482612bba9190613ca7565b612bc49190613d18565b60146000828254612bd59190613d49565b92505081905550612cd3565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c3c57506000600e54115b15612cd257612c696064612c5b600e54886132b090919063ffffffff16565b6132c690919063ffffffff16565b9050600e5460105482612c7c9190613ca7565b612c869190613d18565b60156000828254612c979190613d49565b92505081905550600e54600f5482612caf9190613ca7565b612cb99190613d18565b60146000828254612cca9190613d49565b925050819055505b5b6000811115612ce857612ce7873083612e73565b5b8085612cf49190614766565b94505b612d02878787612e73565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed9906143da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f489061446c565b60405180910390fd5b612f5c8383836132dc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd99061480c565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130759190613d49565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130d99190613709565b60405180910390a36130ec8484846132e1565b50505050565b60006130fd30611063565b905060008190506000808303613115575050506132ae565b6007548311156131255760075492505b60008390506000479050613138826132e6565b600061314d824761352390919063ffffffff16565b905060006131788661316a601554856132b090919063ffffffff16565b6132c690919063ffffffff16565b905060006014819055506000601581905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516131d09061485d565b60006040518083038185875af1925050503d806000811461320d576040519150601f19603f3d011682016040523d82523d6000602084013e613212565b606091505b505080955050600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161325e9061485d565b60006040518083038185875af1925050503d806000811461329b576040519150601f19603f3d011682016040523d82523d6000602084013e6132a0565b606091505b505080955050505050505050505b565b600081836132be9190613ca7565b905092915050565b600081836132d49190613d18565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561330357613302614872565b5b6040519080825280602002602001820160405280156133315781602001602082028036833780820191505090505b5090503081600081518110613349576133486148a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341291906148e5565b81600181518110613426576134256148a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061348b307f000000000000000000000000000000000000000000000000000000000000000084611f12565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134ed959493929190614a15565b600060405180830381600087803b15801561350757600080fd5b505af115801561351b573d6000803e3d6000fd5b505050505050565b600081836135319190614766565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613573578082015181840152602081019050613558565b60008484015250505050565b6000601f19601f8301169050919050565b600061359b82613539565b6135a58185613544565b93506135b5818560208601613555565b6135be8161357f565b840191505092915050565b600060208201905081810360008301526135e38184613590565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061361b826135f0565b9050919050565b61362b81613610565b811461363657600080fd5b50565b60008135905061364881613622565b92915050565b6000819050919050565b6136618161364e565b811461366c57600080fd5b50565b60008135905061367e81613658565b92915050565b6000806040838503121561369b5761369a6135eb565b5b60006136a985828601613639565b92505060206136ba8582860161366f565b9150509250929050565b60008115159050919050565b6136d9816136c4565b82525050565b60006020820190506136f460008301846136d0565b92915050565b6137038161364e565b82525050565b600060208201905061371e60008301846136fa565b92915050565b60008060006060848603121561373d5761373c6135eb565b5b600061374b86828701613639565b935050602061375c86828701613639565b925050604061376d8682870161366f565b9150509250925092565b613780816136c4565b811461378b57600080fd5b50565b60008135905061379d81613777565b92915050565b600080604083850312156137ba576137b96135eb565b5b60006137c885828601613639565b92505060206137d98582860161378e565b9150509250929050565b600060ff82169050919050565b6137f9816137e3565b82525050565b600060208201905061381460008301846137f0565b92915050565b600060808201905061382f60008301876136d0565b61383c60208301866136d0565b61384960408301856136fa565b61385660608301846136fa565b95945050505050565b600060208284031215613875576138746135eb565b5b60006138838482850161366f565b91505092915050565b600080604083850312156138a3576138a26135eb565b5b60006138b18582860161366f565b92505060206138c28582860161366f565b9150509250929050565b6000602082840312156138e2576138e16135eb565b5b60006138f084828501613639565b91505092915050565b600060608201905061390e60008301866136d0565b61391b60208301856136fa565b61392860408301846136fa565b949350505050565b61393981613610565b82525050565b60006020820190506139546000830184613930565b92915050565b600080600060608486031215613973576139726135eb565b5b60006139818682870161378e565b93505060206139928682870161366f565b92505060406139a38682870161366f565b9150509250925092565b600080604083850312156139c4576139c36135eb565b5b60006139d285828601613639565b92505060206139e385828601613639565b9150509250929050565b6000606082019050613a0260008301866136d0565b613a0f60208301856136d0565b613a1c60408301846136d0565b949350505050565b600060c082019050613a3960008301896136fa565b613a4660208301886136fa565b613a5360408301876136fa565b613a6060608301866136fa565b613a6d60808301856136fa565b613a7a60a08301846136fa565b979650505050505050565b6000604082019050613a9a6000830185613930565b613aa76020830184613930565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613af557607f821691505b602082108103613b0857613b07613aae565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613b6a602883613544565b9150613b7582613b0e565b604082019050919050565b60006020820190508181036000830152613b9981613b5d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613bd6602083613544565b9150613be182613ba0565b602082019050919050565b60006020820190508181036000830152613c0581613bc9565b9050919050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e3225600082015250565b6000613c42602083613544565b9150613c4d82613c0c565b602082019050919050565b60006020820190508181036000830152613c7181613c35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cb28261364e565b9150613cbd8361364e565b9250828202613ccb8161364e565b91508282048414831517613ce257613ce1613c78565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d238261364e565b9150613d2e8361364e565b925082613d3e57613d3d613ce9565b5b828204905092915050565b6000613d548261364e565b9150613d5f8361364e565b9250828201905080821115613d7757613d76613c78565b5b92915050565b7f546f74616c2073656c6c206665652063616e6e6f74206265206869676865722060008201527f7468616e20313030250000000000000000000000000000000000000000000000602082015250565b6000613dd9602983613544565b9150613de482613d7d565b604082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b6000606082019050613e2460008301866136fa565b613e3160208301856136fa565b613e3e60408301846136fa565b949350505050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613ea2602483613544565b9150613ead82613e46565b604082019050919050565b60006020820190508181036000830152613ed181613e95565b9050919050565b7f546f74616c20627579206665652063616e6e6f7420626520686967686572207460008201527f68616e2031303025000000000000000000000000000000000000000000000000602082015250565b6000613f34602883613544565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613fc6603983613544565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614058602583613544565b915061406382613ffc565b604082019050919050565b600060208201905081810360008301526140878161404b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e30312520746f74616c20737570706c792e000000000000000000000000602082015250565b60006140ea603483613544565b91506140f58261408e565b604082019050919050565b60006020820190508181036000830152614119816140dd565b9050919050565b7f6d6178696d756d20616d6f756e742063616e742062652068696768657220746860008201527f616e206d696e696d756d00000000000000000000000000000000000000000000602082015250565b600061417c602a83613544565b915061418782614120565b604082019050919050565b600060208201905081810360008301526141ab8161416f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061420e602683613544565b9150614219826141b2565b604082019050919050565b6000602082019050818103600083015261423d81614201565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142a0602483613544565b91506142ab82614244565b604082019050919050565b600060208201905081810360008301526142cf81614293565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614332602283613544565b915061433d826142d6565b604082019050919050565b6000602082019050818103600083015261436181614325565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006143c4602583613544565b91506143cf82614368565b604082019050919050565b600060208201905081810360008301526143f3816143b7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614456602383613544565b9150614461826143fa565b604082019050919050565b6000602082019050818103600083015261448581614449565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f7420616374697660008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b60006144e8602283613544565b91506144f38261448c565b604082019050919050565b60006020820190508181036000830152614517816144db565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006145a0604983613544565b91506145ab8261451e565b606082019050919050565b600060208201905081810360008301526145cf81614593565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b6000614632602683613544565b915061463d826145d6565b604082019050919050565b6000602082019050818103600083015261466181614625565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061469e601383613544565b91506146a982614668565b602082019050919050565b600060208201905081810360008301526146cd81614691565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b6000614730602783613544565b915061473b826146d4565b604082019050919050565b6000602082019050818103600083015261475f81614723565b9050919050565b60006147718261364e565b915061477c8361364e565b925082820390508181111561479457614793613c78565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006147f6602683613544565b91506148018261479a565b604082019050919050565b60006020820190508181036000830152614825816147e9565b9050919050565b600081905092915050565b50565b600061484760008361482c565b915061485282614837565b600082019050919050565b60006148688261483a565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506148df81613622565b92915050565b6000602082840312156148fb576148fa6135eb565b5b6000614909848285016148d0565b91505092915050565b6000819050919050565b6000819050919050565b600061494161493c61493784614912565b61491c565b61364e565b9050919050565b61495181614926565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61498c81613610565b82525050565b600061499e8383614983565b60208301905092915050565b6000602082019050919050565b60006149c282614957565b6149cc8185614962565b93506149d783614973565b8060005b83811015614a085781516149ef8882614992565b97506149fa836149aa565b9250506001810190506149db565b5085935050505092915050565b600060a082019050614a2a60008301886136fa565b614a376020830187614948565b8181036040830152614a4981866149b7565b9050614a586060830185613930565b614a6560808301846136fa565b969550505050505056fea264697066735822122055a7e1b29b590a44d8e1c3de69ffb4c23ca5af103dcce8a0d1371654a4784e9164736f6c63430008130033