Overview ERC20
PRICE
n/a

ON-CHAIN MARKET CAP n/a

Total Supply:
500,000,000.00 NVA

Holders:
73
Profile Summary
Blockchain:
Ethereum (1)


Decimals:
9
Contract Source Code Verified (Partial Match)
Contract Name:
Nova

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No

Created At:
Tue, 04 Jun 2024 06:20:59 GMT
Nova.sol
Nova.sol
Nova.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": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensSwapped",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "ethReceived",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensIntoLiqudity",
        "type": "uint256"
      }
    ],
    "name": "SwapAndLiquify",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      }
    ],
    "name": "SwapAndLiquifyEnabledUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountIn",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address[]",
        "name": "path",
        "type": "address[]"
      }
    ],
    "name": "SwapETHForTokens",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountIn",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address[]",
        "name": "path",
        "type": "address[]"
      }
    ],
    "name": "SwapTokensForETH",
    "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"
  },
  {
    "inputs": [],
    "name": "DevFee",
    "outputs": [
      {
        "internalType": "address payable",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_totalTaxIfBuying",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_totalTaxIfSelling",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "addMarketPair",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "address",
        "name": "newRouterAddress",
        "type": "address"
      }
    ],
    "name": "changeRouterVersion",
    "outputs": [
      {
        "internalType": "address",
        "name": "newPairAddress",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "checkWalletLimit",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "deadAddress",
    "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": "getCirculatingSupply",
    "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": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isExcludedFromFee",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isMarketPair",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isTxLimitExempt",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isWalletLimitExempt",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "marketingWalletAddress",
    "outputs": [
      {
        "internalType": "address payable",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newLiquidityTax",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "newMarketingTax",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "newDevTax",
        "type": "uint256"
      }
    ],
    "name": "setBuyTaxes",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newAddress",
        "type": "address"
      }
    ],
    "name": "setDevFeeAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newLiquidityShare",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "newMarketingShare",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "newdevShare",
        "type": "uint256"
      }
    ],
    "name": "setDistributionSettings",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "newValue",
        "type": "bool"
      }
    ],
    "name": "setIsExcludedFromFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setIsTxLimitExempt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newAddress",
        "type": "address"
      }
    ],
    "name": "setMarketingWalletAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newLimit",
        "type": "uint256"
      }
    ],
    "name": "setNumTokensBeforeSwap",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newLiquidityTax",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "newMarketingTax",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "newDevTax",
        "type": "uint256"
      }
    ],
    "name": "setSellTaxes",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "newValue",
        "type": "bool"
      }
    ],
    "name": "setSwapAndLiquifyByLimitOnly",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      }
    ],
    "name": "setSwapAndLiquifyEnabled",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapAndLiquifyByLimitOnly",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapAndLiquifyEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "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": "uniswapPair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "uniswapV2Router",
    "outputs": [
      {
        "internalType": "contract IUniswapV2Router02",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "waiveOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60a06040526040518060400160405280600481526020017f4e6f766100000000000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000b42565b506040518060400160405280600381526020017f4e56410000000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000b42565b506009600460006101000a81548160ff021916908360ff16021790555073f2236bbd938af426afff073e8998cdaa838b3922600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f2236bbd938af426afff073e8998cdaa838b3922600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600c556002600d556002600e556005600f556005601055600f60115560016012556002601355600260145560046015556019601655601d6017556706f05b59d3b200006018556706f05b59d3b200006019556706f05b59d3b20000601a556516bcc41e9000601b556001601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055503480156200026657600080fd5b5060006200027962000aae60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037757600080fd5b505afa1580156200038c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b2919062000c09565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041557600080fd5b505afa1580156200042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000450919062000c09565b6040518363ffffffff1660e01b81526004016200046f92919062000c7e565b602060405180830381600087803b1580156200048a57600080fd5b505af11580156200049f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c5919062000c09565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200060162000ab660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006e3600e54620006cf600d54600c5462000adf60201b6200228a1790919060201c565b62000adf60201b6200228a1790919060201c565b601581905550620007226011546200070e601054600f5462000adf60201b6200228a1790919060201c565b62000adf60201b6200228a1790919060201c565b601681905550620007616014546200074d60135460125462000adf60201b6200228a1790919060201c565b62000adf60201b6200228a1790919060201c565b6017819055506001600960006200077d62000ab660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620008b662000ab660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060185460066000620009f062000aae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a3e62000aae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000a9f919062000ccd565b60405180910390a35062000e6d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000af0919062000cfb565b90508381101562000b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2f9062000cab565b60405180910390fd5b8091505092915050565b82805462000b509062000d96565b90600052602060002090601f01602090048101928262000b74576000855562000bc0565b82601f1062000b8f57805160ff191683800117855562000bc0565b8280016001018555821562000bc0579182015b8281111562000bbf57825182559160200191906001019062000ba2565b5b50905062000bcf919062000bd3565b5090565b5b8082111562000bee57600081600090555060010162000bd4565b5090565b60008151905062000c038162000e53565b92915050565b60006020828403121562000c1c57600080fd5b600062000c2c8482850162000bf2565b91505092915050565b62000c408162000d58565b82525050565b600062000c55601b8362000cea565b915062000c628262000e2a565b602082019050919050565b62000c788162000d8c565b82525050565b600060408201905062000c95600083018562000c35565b62000ca4602083018462000c35565b9392505050565b6000602082019050818103600083015262000cc68162000c46565b9050919050565b600060208201905062000ce4600083018462000c6d565b92915050565b600082825260208201905092915050565b600062000d088262000d8c565b915062000d158362000d8c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d4d5762000d4c62000dcc565b5b828201905092915050565b600062000d658262000d6c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000daf57607f821691505b6020821081141562000dc65762000dc562000dfb565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000e5e8162000d58565b811462000e6a57600080fd5b50565b60805160601c6144f262000e9360003960008181610d970152610dc301526144f26000f3fe6080604052600436106102555760003560e01c80638b42507f11610139578063c867d60b116100b6578063e207a92b1161007a578063e207a92b14610921578063ef422a181461094a578063f0cd1dac14610973578063f2fde38b1461099e578063f84ba65d146109c7578063f872858a146109f05761025c565b8063c867d60b14610828578063d158272d14610865578063d687b4d114610890578063da00097d146108b9578063dd62ed3e146108e45761025c565b8063a5d69d1f116100fd578063a5d69d1f14610745578063a9059cbb1461076e578063c2d4640e146107ab578063c49b9a80146107d4578063c816841b146107fd5761025c565b80638b42507f1461065e5780638da5cb5b1461069b578063914eb66a146106c657806395d89b41146106dd578063a457c2d7146107085761025c565b806339509351116101d25780634cb80fd5116101965780634cb80fd5146105285780635342acb4146105515780635881f3ef1461058e5780635997ed4c146105cb57806370a08231146105f657806382eefb43146106335761025c565b8063395093511461042f5780633b97084a1461046c5780633eaaf86b146104955780633ecad271146104c05780634a74bb02146104fd5761025c565b80631870517a116102195780631870517a1461034857806323b872dd1461037157806327c8f835146103ae5780632b112e49146103d9578063313ce567146104045761025c565b806306fdde0314610261578063087332141461028c578063095ea7b3146102b55780631694505e146102f257806318160ddd1461031d5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610a1b565b6040516102839190613ca3565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae91906138ad565b610aad565b005b3480156102c157600080fd5b506102dc60048036038101906102d7919061381f565b610b8d565b6040516102e99190613c6d565b60405180910390f35b3480156102fe57600080fd5b50610307610bab565b6040516103149190613c88565b60405180910390f35b34801561032957600080fd5b50610332610bd1565b60405161033f9190613de5565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a91906138ad565b610bdb565b005b34801561037d57600080fd5b5061039860048036038101906103939190613794565b610cbb565b6040516103a59190613c6d565b60405180910390f35b3480156103ba57600080fd5b506103c3610d95565b6040516103d09190613bad565b60405180910390f35b3480156103e557600080fd5b506103ee610db9565b6040516103fb9190613de5565b60405180910390f35b34801561041057600080fd5b50610419610dfd565b6040516104269190613e8a565b60405180910390f35b34801561043b57600080fd5b506104566004803603810190610451919061381f565b610e14565b6040516104639190613c6d565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613884565b610ec7565b005b3480156104a157600080fd5b506104aa610f66565b6040516104b79190613de5565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e29190613706565b610f6c565b6040516104f49190613c6d565b60405180910390f35b34801561050957600080fd5b50610512610f8c565b60405161051f9190613c6d565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613706565b610f9f565b005b34801561055d57600080fd5b5061057860048036038101906105739190613706565b611078565b6040516105859190613c6d565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190613706565b611098565b6040516105c29190613bad565b60405180910390f35b3480156105d757600080fd5b506105e06115f6565b6040516105ed9190613bc8565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613706565b61161c565b60405161062a9190613de5565b60405180910390f35b34801561063f57600080fd5b50610648611665565b6040516106559190613de5565b60405180910390f35b34801561066a57600080fd5b5061068560048036038101906106809190613706565b61166b565b6040516106929190613c6d565b60405180910390f35b3480156106a757600080fd5b506106b061168b565b6040516106bd9190613bad565b60405180910390f35b3480156106d257600080fd5b506106db6116b4565b005b3480156106e957600080fd5b506106f2611807565b6040516106ff9190613ca3565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a919061381f565b611899565b60405161073c9190613c6d565b60405180910390f35b34801561075157600080fd5b5061076c6004803603810190610767919061385b565b611966565b005b34801561077a57600080fd5b506107956004803603810190610790919061381f565b611a18565b6040516107a29190613c6d565b60405180910390f35b3480156107b757600080fd5b506107d260048036038101906107cd91906138ad565b611a37565b005b3480156107e057600080fd5b506107fb60048036038101906107f6919061385b565b611b17565b005b34801561080957600080fd5b50610812611c00565b60405161081f9190613bad565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a9190613706565b611c26565b60405161085c9190613c6d565b60405180910390f35b34801561087157600080fd5b5061087a611c46565b6040516108879190613bc8565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b29190613706565b611c6c565b005b3480156108c557600080fd5b506108ce611d45565b6040516108db9190613c6d565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613758565b611d58565b6040516109189190613de5565b60405180910390f35b34801561092d57600080fd5b5061094860048036038101906109439190613706565b611ddf565b005b34801561095657600080fd5b50610971600480360381019061096c91906137e3565b611ecf565b005b34801561097f57600080fd5b50610988611fbf565b6040516109959190613de5565b60405180910390f35b3480156109aa57600080fd5b506109c560048036038101906109c09190613706565b611fc5565b005b3480156109d357600080fd5b506109ee60048036038101906109e991906137e3565b612187565b005b3480156109fc57600080fd5b50610a05612277565b604051610a129190613c6d565b60405180910390f35b606060028054610a2a906140df565b80601f0160208091040260200160405190810160405280929190818152602001828054610a56906140df565b8015610aa35780601f10610a7857610100808354040283529160200191610aa3565b820191906000526020600020905b815481529060010190602001808311610a8657829003601f168201915b5050505050905090565b610ab56122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990613d85565b60405180910390fd5b82600f819055508160108190555080601181905550610b82601154610b74601054600f5461228a90919063ffffffff16565b61228a90919063ffffffff16565b601681905550505050565b6000610ba1610b9a6122e8565b84846122f0565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610be36122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6790613d85565b60405180910390fd5b82600c8190555081600d8190555080600e81905550610cb0600e54610ca2600d54600c5461228a90919063ffffffff16565b61228a90919063ffffffff16565b601581905550505050565b6000610cc88484846124bb565b50610d8a84610cd56122e8565b610d858560405180606001604052806028815260200161447060289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d3b6122e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa09092919063ffffffff16565b6122f0565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610df8610de77f000000000000000000000000000000000000000000000000000000000000000061161c565b601854612b0490919063ffffffff16565b905090565b6000600460009054906101000a900460ff16905090565b6000610ebd610e216122e8565b84610eb88560076000610e326122e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228a90919063ffffffff16565b6122f0565b6001905092915050565b610ecf6122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390613d85565b60405180910390fd5b80601b8190555050565b60185481565b600b6020528060005260406000206000915054906101000a900460ff1681565b601d60159054906101000a900460ff1681565b610fa76122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b90613d85565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b60006110a26122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112690613d85565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561117a57600080fd5b505afa15801561118e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b2919061372f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561121457600080fd5b505afa158015611228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c919061372f565b6040518363ffffffff1660e01b8152600401611269929190613be3565b60206040518083038186803b15801561128157600080fd5b505afa158015611295573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b9919061372f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147a578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561133657600080fd5b505afa15801561134a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136e919061372f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156113d057600080fd5b505afa1580156113e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611408919061372f565b6040518363ffffffff1660e01b8152600401611425929190613be3565b602060405180830381600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611477919061372f565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60165481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116bc6122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090613d85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611816906140df565b80601f0160208091040260200160405190810160405280929190818152602001828054611842906140df565b801561188f5780601f106118645761010080835404028352916020019161188f565b820191906000526020600020905b81548152906001019060200180831161187257829003601f168201915b5050505050905090565b600061195c6118a66122e8565b846119578560405180606001604052806025815260200161449860259139600760006118d06122e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa09092919063ffffffff16565b6122f0565b6001905092915050565b61196e6122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290613d85565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b6000611a2c611a256122e8565b84846124bb565b506001905092915050565b611a3f6122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac390613d85565b60405180910390fd5b826012819055508160138190555080601481905550611b0c601454611afe60135460125461228a90919063ffffffff16565b61228a90919063ffffffff16565b601781905550505050565b611b1f6122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba390613d85565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611bf59190613c6d565b60405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c746122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf890613d85565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611de76122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b90613d85565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ed76122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90613d85565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b611fcd6122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461205a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205190613d85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c190613d05565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61218f6122e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461221c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221390613d85565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60179054906101000a900460ff1681565b60008082846122999190613efa565b9050838110156122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d590613d25565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235790613ce5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c790613dc5565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124ae9190613de5565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561252c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252390613da5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561259c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259390613cc5565b60405180910390fd5b601d60149054906101000a900460ff16156125c3576125bc848484612b4e565b9050612a99565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126675750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126b2576019548211156126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a890613d45565b60405180910390fd5b5b60006126bd3061161c565b90506000601b5482101590508080156126e35750601d60149054906101000a900460ff16155b80156127395750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127515750601d60159054906101000a900460ff165b1561277b57601d60169054906101000a900460ff161561277157601b5491505b61277a82612d21565b5b612804846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa09092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128ea5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128fe576128f9878787612f12565b612900565b845b9050601d60179054906101000a900460ff1680156129685750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561299757601a5461298b8261297d8961161c565b61228a90919063ffffffff16565b111561299657600080fd5b5b6129e981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228a90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a899190613de5565b60405180910390a3600193505050505b9392505050565b6000838311158290612ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adf9190613ca3565b60405180910390fd5b5060008385612af79190613fdb565b9050809150509392505050565b6000612b4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612aa0565b905092915050565b6000612bd9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa09092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c6e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228a90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d0e9190613de5565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff0219169083151502179055506000612d7a6002612d6c601754612d5e6012548761313990919063ffffffff16565b6131b490919063ffffffff16565b6131b490919063ffffffff16565b90506000612d918284612b0490919063ffffffff16565b9050612d9c816131fe565b60004790506000612dcd612dbc60026012546131b490919063ffffffff16565b601754612b0490919063ffffffff16565b90506000612e0b6002612dfd84612def6012548861313990919063ffffffff16565b6131b490919063ffffffff16565b6131b490919063ffffffff16565b90506000612e3683612e286014548761313990919063ffffffff16565b6131b490919063ffffffff16565b90506000612e5f82612e518588612b0490919063ffffffff16565b612b0490919063ffffffff16565b90506000811115612e9757612e96600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826134fb565b5b6000821115612ecd57612ecc600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836134fb565b5b600083118015612edd5750600087115b15612eed57612eec8784613546565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f9a57612f936064612f856015548661313990919063ffffffff16565b6131b490919063ffffffff16565b9050613018565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156130175761301460646130066016548661313990919063ffffffff16565b6131b490919063ffffffff16565b90505b5b600081111561311c5761307381600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228a90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131139190613de5565b60405180910390a35b61312f8184612b0490919063ffffffff16565b9150509392505050565b60008083141561314c57600090506131ae565b6000828461315a9190613f81565b90508284826131699190613f50565b146131a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a090613d65565b60405180910390fd5b809150505b92915050565b60006131f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061363a565b905092915050565b6000600267ffffffffffffffff811115613241577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561326f5781602001602082028036833780820191505090505b50905030816000815181106132ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561334f57600080fd5b505afa158015613363573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613387919061372f565b816001815181106133c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061342830601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122f0565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161348c959493929190613e30565b600060405180830381600087803b1580156134a657600080fd5b505af11580156134ba573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516134ef929190613e00565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613541573d6000803e3d6000fd5b505050565b61357330601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122f0565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806135bf61168b565b426040518863ffffffff1660e01b81526004016135e196959493929190613c0c565b6060604051808303818588803b1580156135fa57600080fd5b505af115801561360e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061363391906138fc565b5050505050565b60008083118290613681576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136789190613ca3565b60405180910390fd5b50600083856136909190613f50565b9050809150509392505050565b6000813590506136ac8161442a565b92915050565b6000815190506136c18161442a565b92915050565b6000813590506136d681614441565b92915050565b6000813590506136eb81614458565b92915050565b60008151905061370081614458565b92915050565b60006020828403121561371857600080fd5b60006137268482850161369d565b91505092915050565b60006020828403121561374157600080fd5b600061374f848285016136b2565b91505092915050565b6000806040838503121561376b57600080fd5b60006137798582860161369d565b925050602061378a8582860161369d565b9150509250929050565b6000806000606084860312156137a957600080fd5b60006137b78682870161369d565b93505060206137c88682870161369d565b92505060406137d9868287016136dc565b9150509250925092565b600080604083850312156137f657600080fd5b60006138048582860161369d565b9250506020613815858286016136c7565b9150509250929050565b6000806040838503121561383257600080fd5b60006138408582860161369d565b9250506020613851858286016136dc565b9150509250929050565b60006020828403121561386d57600080fd5b600061387b848285016136c7565b91505092915050565b60006020828403121561389657600080fd5b60006138a4848285016136dc565b91505092915050565b6000806000606084860312156138c257600080fd5b60006138d0868287016136dc565b93505060206138e1868287016136dc565b92505060406138f2868287016136dc565b9150509250925092565b60008060006060848603121561391157600080fd5b600061391f868287016136f1565b9350506020613930868287016136f1565b9250506040613941868287016136f1565b9150509250925092565b60006139578383613972565b60208301905092915050565b61396c81614021565b82525050565b61397b8161400f565b82525050565b61398a8161400f565b82525050565b600061399b82613eb5565b6139a58185613ed8565b93506139b083613ea5565b8060005b838110156139e15781516139c8888261394b565b97506139d383613ecb565b9250506001810190506139b4565b5085935050505092915050565b6139f781614033565b82525050565b613a0681614076565b82525050565b613a158161409a565b82525050565b6000613a2682613ec0565b613a308185613ee9565b9350613a408185602086016140ac565b613a498161419e565b840191505092915050565b6000613a61602383613ee9565b9150613a6c826141af565b604082019050919050565b6000613a84602483613ee9565b9150613a8f826141fe565b604082019050919050565b6000613aa7602683613ee9565b9150613ab28261424d565b604082019050919050565b6000613aca601b83613ee9565b9150613ad58261429c565b602082019050919050565b6000613aed602883613ee9565b9150613af8826142c5565b604082019050919050565b6000613b10602183613ee9565b9150613b1b82614314565b604082019050919050565b6000613b33602083613ee9565b9150613b3e82614363565b602082019050919050565b6000613b56602583613ee9565b9150613b618261438c565b604082019050919050565b6000613b79602283613ee9565b9150613b84826143db565b604082019050919050565b613b988161405f565b82525050565b613ba781614069565b82525050565b6000602082019050613bc26000830184613981565b92915050565b6000602082019050613bdd6000830184613963565b92915050565b6000604082019050613bf86000830185613981565b613c056020830184613981565b9392505050565b600060c082019050613c216000830189613981565b613c2e6020830188613b8f565b613c3b6040830187613a0c565b613c486060830186613a0c565b613c556080830185613981565b613c6260a0830184613b8f565b979650505050505050565b6000602082019050613c8260008301846139ee565b92915050565b6000602082019050613c9d60008301846139fd565b92915050565b60006020820190508181036000830152613cbd8184613a1b565b905092915050565b60006020820190508181036000830152613cde81613a54565b9050919050565b60006020820190508181036000830152613cfe81613a77565b9050919050565b60006020820190508181036000830152613d1e81613a9a565b9050919050565b60006020820190508181036000830152613d3e81613abd565b9050919050565b60006020820190508181036000830152613d5e81613ae0565b9050919050565b60006020820190508181036000830152613d7e81613b03565b9050919050565b60006020820190508181036000830152613d9e81613b26565b9050919050565b60006020820190508181036000830152613dbe81613b49565b9050919050565b60006020820190508181036000830152613dde81613b6c565b9050919050565b6000602082019050613dfa6000830184613b8f565b92915050565b6000604082019050613e156000830185613b8f565b8181036020830152613e278184613990565b90509392505050565b600060a082019050613e456000830188613b8f565b613e526020830187613a0c565b8181036040830152613e648186613990565b9050613e736060830185613981565b613e806080830184613b8f565b9695505050505050565b6000602082019050613e9f6000830184613b9e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f058261405f565b9150613f108361405f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f4557613f44614111565b5b828201905092915050565b6000613f5b8261405f565b9150613f668361405f565b925082613f7657613f75614140565b5b828204905092915050565b6000613f8c8261405f565b9150613f978361405f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fd057613fcf614111565b5b828202905092915050565b6000613fe68261405f565b9150613ff18361405f565b92508282101561400457614003614111565b5b828203905092915050565b600061401a8261403f565b9050919050565b600061402c8261403f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061408182614088565b9050919050565b60006140938261403f565b9050919050565b60006140a58261405f565b9050919050565b60005b838110156140ca5780820151818401526020810190506140af565b838111156140d9576000848401525b50505050565b600060028204905060018216806140f757607f821691505b6020821081141561410b5761410a61416f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6144338161400f565b811461443e57600080fd5b50565b61444a81614033565b811461445557600080fd5b50565b6144618161405f565b811461446c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206a8128b7360b1e3443ecc87193fb2993433cf9edbed68a769d40c4e89ca3ead464736f6c63430008040033