{
  "_format": "hh-sol-artifact-1",
  "contractName": "MockPENDLE",
  "sourceName": "contracts/mock/MockPENDLE.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "pendleTeamTokens",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "pendleEcosystemFund",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "salesMultisig",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_liquidityIncentivesRecipient",
          "type": "address"
        }
      ],
      "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": "emissionRateMultiplierNumerator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "terminalInflationRateNumerator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "liquidityIncentivesRecipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isBurningAllowed",
          "type": "bool"
        }
      ],
      "name": "ConfigsChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "delegator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "fromDelegate",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "toDelegate",
          "type": "address"
        }
      ],
      "name": "DelegateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "previousBalance",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newBalance",
          "type": "uint256"
        }
      ],
      "name": "DelegateVotesChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "sendTo",
          "type": "address"
        }
      ],
      "name": "EtherWithdraw",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "newGovernance",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousGovernance",
          "type": "address"
        }
      ],
      "name": "GovernanceClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "pendingEmissionRateMultiplierNumerator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "pendingTerminalInflationRateNumerator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "pendingLiquidityIncentivesRecipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "pendingIsBurningAllowed",
          "type": "bool"
        }
      ],
      "name": "PendingConfigChanges",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "sendTo",
          "type": "address"
        }
      ],
      "name": "TokenWithdraw",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "pendingGovernance",
          "type": "address"
        }
      ],
      "name": "TransferGovernancePending",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DELEGATION_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DOMAIN_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "applyConfigChanges",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "approveInternal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "name": "checkpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "fromBlock",
          "type": "uint32"
        },
        {
          "internalType": "uint256",
          "name": "votes",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimGovernance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimLiquidityEmissions",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalEmissions",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "configChangesInitiated",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "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": [
        {
          "internalType": "address",
          "name": "delegatee",
          "type": "address"
        }
      ],
      "name": "delegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "delegatee",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expiry",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "delegateBySig",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "delegates",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "emissionRateMultiplierNumerator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "time",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "getCurrentVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentWeek",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getPriorVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governance",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_emissionRateMultiplierNumerator",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_terminalInflationRateNumerator",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_liquidityIncentivesRecipient",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_isBurningAllowed",
          "type": "bool"
        }
      ],
      "name": "initiateConfigChanges",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isBurningAllowed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isPendleToken",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lastWeekEmissionSent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lastWeeklyEmission",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "liquidityIncentivesRecipient",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "numCheckpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingEmissionRateMultiplierNumerator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingGovernance",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingIsBurningAllowed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingLiquidityIncentivesRecipient",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingTerminalInflationRateNumerator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "startTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "terminalInflationRateNumerator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "dst",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "src",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "dst",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        }
      ],
      "name": "transferGovernance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transferInternal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "address payable",
          "name": "sendTo",
          "type": "address"
        }
      ],
      "name": "withdrawEther",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "sendTo",
          "type": "address"
        }
      ],
      "name": "withdrawToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162002be438038062002be4833981810160405260a08110156200003757600080fd5b508051602082015160408301516060840151608090940151929391929091908484848484846001600160a01b038116620000a7576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b60028054336001600160a01b031991821617909155600080549091166001600160a01b03928316179055841615801590620000ea57506001600160a01b03831615155b8015620000ff57506001600160a01b03821615155b80156200011457506001600160a01b03811615155b6200013c5760405162461bcd60e51b815260040162000133906200033d565b60405180910390fd5b62000153846a4e837ba813eac04cf4000062000204565b6200016a836a260ce0ff28d2b2ee00000062000204565b62000181826a0db78f747e56bf528c000062000204565b62000198816a19cedb639a935c6c00000062000204565b6103e86603837d81aed000046004556316a4075a6005556006805442600b5569fe1c215e8f838e000000600c55601a600d5560ff60a01b196001600160a01b039093166001600160a01b03199091161791909116600160a01b1790555062000397975050505050505050565b6001600160a01b0382166200022d5760405162461bcd60e51b8152600401620001339062000363565b6200024981600354620002db60201b6200168a1790919060201c565b6003556001600160a01b0382166000908152600f60209081526040909120546200027e9183906200168a620002db821b17901c565b6001600160a01b0383166000818152600f60205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002cf9085906200038e565b60405180910390a35050565b60008282018381101562000336576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6020808252600c908201526b5a45524f5f4144445245535360a01b604082015260600190565b60208082526011908201527026a4a72a2faa27afad22a927afa0a2222960791b604082015260600190565b90815260200190565b61283d80620003a76000396000f3fe608060405234801561001057600080fd5b50600436106102d65760003560e01c80636fcfff4511610182578063c3cda520116100e9578063e4a1ecb6116100a2578063ee87ab6b1161007c578063ee87ab6b14610865578063f1127ed81461086d578063f39c38a0146108bf578063ff552d77146108c7576102d6565b8063e4a1ecb61461084d578063e76af32e14610855578063e7a324dc1461085d576102d6565b8063c3cda52014610776578063c4e41b22146107bd578063ce56c454146107c5578063d38bfff4146107f1578063dc23b26514610817578063dd62ed3e1461081f576102d6565b806395d89b411161013b57806395d89b411461068a5780639dc29fac14610692578063a457c2d7146106be578063a9059cbb146106ea578063acff6f7914610716578063b4b5ea5714610750576102d6565b80636fcfff45146105c357806370a0823114610602578063782d6fe11461062857806378e97925146106545780637ecebe001461065c578063924a23b414610682576102d6565b806332c9c8341161024157806356189cb4116101fa5780635c19a95c116101d45780635c19a95c146105855780635d36b190146105ab5780635d587aea146105b35780636eb227ce146105bb576102d6565b806356189cb414610521578063587cde1e146105575780635aa6e6751461057d576102d6565b806332c9c8341461048a57806339509351146104925780633ccdbb28146104be5780634245a580146104f457806342966c68146104fc5780634cde843614610519576102d6565b8063222f5be011610293578063222f5be0146103ca57806322d7bf8d1461040257806323b872dd1461040a57806329cb924d146104405780632fac9cca14610448578063313ce5671461046c576102d6565b806306fdde03146102db578063095ea7b3146103585780630d7a1c621461039857806318160ddd146103b25780631cb6a0e8146103ba57806320606b70146103c2575b600080fd5b6102e36108cf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031d578181015183820152602001610305565b50505050905090810190601f16801561034a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103846004803603604081101561036e57600080fd5b506001600160a01b0381351690602001356108f1565b604080519115158252519081900360200190f35b6103a0610908565b60408051918252519081900360200190f35b6103a061090e565b6103a0610914565b6103a061091a565b610400600480360360608110156103e057600080fd5b506001600160a01b0381358116916020810135909116906040013561093e565b005b6103a061094e565b6103846004803603606081101561042057600080fd5b506001600160a01b03813581169160208101359091169060400135610954565b6103a06109dc565b6104506109e0565b604080516001600160a01b039092168252519081900360200190f35b6104746109ef565b6040805160ff9092168252519081900360200190f35b6103a06109f4565b610384600480360360408110156104a857600080fd5b506001600160a01b0381351690602001356109fa565b610400600480360360608110156104d457600080fd5b506001600160a01b03813581169160208101359160409091013516610a30565b610400610ae4565b6103846004803603602081101561051257600080fd5b5035610bd7565b610384610c15565b6104006004803603606081101561053757600080fd5b506001600160a01b03813581169160208101359091169060400135610c25565b6104506004803603602081101561056d57600080fd5b50356001600160a01b0316610c30565b610450610c4b565b6104006004803603602081101561059b57600080fd5b50356001600160a01b0316610c5a565b610400610c67565b6103a0610d2c565b6103a0610d66565b6105e9600480360360208110156105d957600080fd5b50356001600160a01b0316610d73565b6040805163ffffffff9092168252519081900360200190f35b6103a06004803603602081101561061857600080fd5b50356001600160a01b0316610d8b565b6103a06004803603604081101561063e57600080fd5b506001600160a01b038135169060200135610da6565b6103a0610f8a565b6103a06004803603602081101561067257600080fd5b50356001600160a01b0316610f90565b610384610fa2565b6102e3610fa7565b610400600480360360408110156106a857600080fd5b506001600160a01b038135169060200135610fc9565b610384600480360360408110156106d457600080fd5b506001600160a01b038135169060200135610fd7565b6103846004803603604081101561070057600080fd5b506001600160a01b038135169060200135611039565b6104006004803603608081101561072c57600080fd5b508035906020810135906001600160a01b0360408201351690606001351515611046565b6103a06004803603602081101561076657600080fd5b50356001600160a01b031661113b565b610400600480360360c081101561078c57600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a0013561119e565b6103a06113a2565b610400600480360360408110156107db57600080fd5b50803590602001356001600160a01b03166113a8565b6104006004803603602081101561080757600080fd5b50356001600160a01b03166114d9565b6103a06115ce565b6103a06004803603604081101561083557600080fd5b506001600160a01b03813581169160200135166115d4565b6103a06115ff565b610384611605565b6103a0611615565b6103a0611639565b61089f6004803603604081101561088357600080fd5b5080356001600160a01b0316906020013563ffffffff1661163f565b6040805163ffffffff909316835260208301919091528051918290030190f35b61045061166c565b61045061167b565b6040518060400160405280600681526020016550656e646c6560d01b81525081565b60006108fe3384846116e4565b5060015b92915050565b600d5481565b60035481565b60085481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b610949838383611798565b505050565b60045481565b6000610961848484611798565b604080518082018252601981527f5452414e534645525f4558434545445f414c4c4f57414e4345000000000000006020808301919091526001600160a01b0387166000908152600e825283812033808352925292909220546109d192879290916109cc918790611923565b6116e4565b5060015b9392505050565b4290565b6009546001600160a01b031681565b601281565b600c5481565b336000818152600e602090815260408083206001600160a01b038716845290915281205490916108fe9185906109cc908661168a565b6000546001600160a01b03163314610a81576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b610a956001600160a01b03841682846119ba565b604080516001600160a01b0380861682526020820185905283168183015290517f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e69181900360600190a1505050565b600a54610b0c5760405162461bcd60e51b8152600401610b039061250c565b60405180910390fd5b62093a80600a54014211610b325760405162461bcd60e51b8152600401610b0390612543565b610b3a611a0c565b50600754600481905560085460058190556009546006805460ff600160a01b80850482161515810260ff60a01b196001600160a01b03199094166001600160a01b03968716179390931692909217928390556000600a556040517f83564c1102f308ae821e2b1d74b5cafae42f89d7b2c57a73ad01810469fb2c9996610bcd969095909490811693900490911690612770565b60405180910390a1565b600654600090600160a01b900460ff16610c035760405162461bcd60e51b8152600401610b0390612571565b610c0d3383611acd565b506001919050565b600954600160a01b900460ff1681565b6109498383836116e4565b6010602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b610c643382611b9d565b50565b6001546001600160a01b03163314610cb9576040805162461bcd60e51b815260206004820152601060248201526f57524f4e475f474f5645524e414e434560801b604482015290519081900360640190fd5b600154600054604080516001600160a01b03938416815292909116602083015280517fb0758afd6736a6cb3153d002696dcdd7615f1ff7c626469b3daf3358286c1c249281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6006546000906001600160a01b03163314610d595760405162461bcd60e51b8152600401610b039061259e565b610d61611a0c565b905090565b6000610d61611c1d565b90565b60126020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600f602052604090205490565b6000438210610dc75760405162461bcd60e51b8152600401610b039061248c565b6001600160a01b03831660009081526012602052604090205463ffffffff1680610df5576000915050610902565b6001600160a01b038416600090815260116020908152604080832063ffffffff600019860181168552925290912054168310610e64576001600160a01b03841660009081526011602090815260408083206000199490940163ffffffff16835292905220600101549050610902565b6001600160a01b038416600090815260116020908152604080832083805290915290205463ffffffff16831015610e9f576000915050610902565b600060001982015b8163ffffffff168163ffffffff161115610f53576000600263ffffffff848403166001600160a01b038916600090815260116020908152604080832094909304860363ffffffff8181168452948252918390208351808501909452805490941680845260019094015490830152925090871415610f2e576020015194506109029350505050565b805163ffffffff16871115610f4557819350610f4c565b6001820392505b5050610ea7565b506001600160a01b038516600090815260116020908152604080832063ffffffff9094168352929052206001015491505092915050565b600b5481565b60136020526000908152604090205481565b600181565b6040518060400160405280600681526020016550454e444c4560d01b81525081565b610fd38282611acd565b5050565b60408051808201825260128152714e454741544956455f414c4c4f57414e434560701b602080830191909152336000818152600e83528481206001600160a01b03881682529092529281205490926108fe92909186916109cc91908790611923565b60006108fe338484611798565b6000546001600160a01b03163314611097576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b6001600160a01b0382166110bd5760405162461bcd60e51b8152600401610b039061262b565b60078490556008839055600980546001600160a01b0319166001600160a01b0384161760ff60a01b1916600160a01b831515021790556040517f01c0ca0e9ae895c3d36eca6824cc5bd60faa1048833ef3014f522ee5f1b2397090611129908690869086908690612770565b60405180910390a1505042600a555050565b6001600160a01b03811660009081526012602052604081205463ffffffff16806111665760006109d5565b6001600160a01b038316600090815260116020908152604080832063ffffffff60001986011684529091529020600101549392505050565b60408051808201909152600681526550656e646c6560d01b60209091015260007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667fff2cde021cdee1d25b48654d14cc97c50a36ce29f880cb7d517933c7a82da0cf611208611c38565b3060405160200161121c94939291906123ca565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf88888860405160200161126d94939291906123a6565b6040516020818303038152906040528051906020012090506000828260405160200161129a92919061238b565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516112d794939291906123ee565b6020604051602081039080840390855afa1580156112f9573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661132c5760405162461bcd60e51b8152600401610b03906125d5565b6001600160a01b0381166000908152601360205260409020805460018101909155891461136b5760405162461bcd60e51b8152600401610b03906126d2565b8742111561138b5760405162461bcd60e51b8152600401610b0390612600565b611395818b611b9d565b505050505b505050505050565b60035490565b6000546001600160a01b031633146113f9576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b6040516000906001600160a01b0383169084908381818185875af1925050503d8060008114611444576040519150601f19603f3d011682016040523d82523d6000602084013e611449565b606091505b5050905080611491576040805162461bcd60e51b815260206004820152600f60248201526e15d2551211149055d7d19052531151608a1b604482015290519081900360640190fd5b604080518481526001600160a01b038416602082015281517fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de929181900390910190a1505050565b6000546001600160a01b0316331461152a576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b6001600160a01b038116611574576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f70f2dff90d8145da945114cc37c5ffde0eef9306ad5efbd39cae52dc28f9cbf3916020908290030190a150565b60055481565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b60075481565b600654600160a01b900460ff1681565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600a5481565b60116020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b6001546001600160a01b031681565b6006546001600160a01b031681565b6000828201838110156109d5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b03831661170a5760405162461bcd60e51b8152600401610b03906124b8565b6001600160a01b0382166117305760405162461bcd60e51b8152600401610b03906124e1565b6001600160a01b038084166000818152600e602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061178b908590612759565b60405180910390a3505050565b6001600160a01b0383166117be5760405162461bcd60e51b8152600401610b0390612651565b6001600160a01b0382166117e45760405162461bcd60e51b8152600401610b039061267b565b6001600160a01b03821630141561180d5760405162461bcd60e51b8152600401610b0390612729565b604080518082018252601781527f5452414e534645525f4558434545445f42414c414e43450000000000000000006020808301919091526001600160a01b0386166000908152600f9091529190912054611868918390611923565b6001600160a01b038085166000908152600f60205260408082209390935590841681522054611897908261168a565b6001600160a01b038084166000818152600f602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118e9908590612759565b60405180910390a36001600160a01b0380841660009081526010602052604080822054858416835291205461094992918216911683611c3c565b600081848411156119b25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561197757818101518382015260200161195f565b50505050905090810190601f1680156119a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610949908490611d79565b600080611a17611c1d565b9050600d548111611a2c576000915050610d70565b600d546001015b818111611ac6576101038111611a7157611a6964e8d4a51000611a63600454600c54611e2a90919063ffffffff16565b90611e83565b600c55611a95565b611a9164e8d4a51000611a63600554600354611e2a90919063ffffffff16565b600c555b600654600c54611aae916001600160a01b031690611eea565b600c54611abc90849061168a565b9250600101611a33565b50600d5590565b6001600160a01b038216611af35760405162461bcd60e51b8152600401610b03906126f9565b6001600160a01b0382166000908152600f602052604090205481811015611b2c5760405162461bcd60e51b8152600401610b039061245f565b611b368183611f9e565b6001600160a01b0384166000908152600f6020526040902055600354611b5c9083611f9e565b6003556040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061178b908690612759565b6001600160a01b0380831660008181526010602081815260408084208054600f845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611c17828483611c3c565b50505050565b600062093a80600b54420381611c2f57fe5b04600101905090565b4690565b816001600160a01b0316836001600160a01b031614158015611c5e5750600081115b15610949576001600160a01b03831615611cf0576001600160a01b03831660009081526012602052604081205463ffffffff169081611c9e576000611cd0565b6001600160a01b038516600090815260116020908152604080832063ffffffff60001987011684529091529020600101545b90506000611cde8285611f9e565b9050611cec86848484611ffb565b5050505b6001600160a01b03821615610949576001600160a01b03821660009081526012602052604081205463ffffffff169081611d2b576000611d5d565b6001600160a01b038416600090815260116020908152604080832063ffffffff60001987011684529091529020600101545b90506000611d6b828561168a565b905061139a85848484611ffb565b6000611dce826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661217d9092919063ffffffff16565b80519091501561094957808060200190516020811015611ded57600080fd5b50516109495760405162461bcd60e51b815260040180806020018281038252602a8152602001806127de602a913960400191505060405180910390fd5b600082611e3957506000610902565b82820282848281611e4657fe5b04146109d55760405162461bcd60e51b81526004018080602001828103825260218152602001806127bd6021913960400191505060405180910390fd5b6000808211611ed9576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611ee257fe5b049392505050565b6001600160a01b038216611f105760405162461bcd60e51b8152600401610b03906126a7565b600354611f1d908261168a565b6003556001600160a01b0382166000908152600f6020526040902054611f43908261168a565b6001600160a01b0383166000818152600f60205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f92908590612759565b60405180910390a35050565b600082821115611ff5576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600061203c436040518060400160405280601881526020017f424c4f434b5f4e554d5f4558434545445f33325f424954530000000000000000815250612194565b905060008463ffffffff1611801561208557506001600160a01b038516600090815260116020908152604080832063ffffffff6000198901811685529252909120548282169116145b156120c2576001600160a01b038516600090815260116020908152604080832063ffffffff60001989011684529091529020600101829055612133565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152601184528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260129092529390208054928801909116919092161790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161216e929190612762565b60405180910390a25050505050565b606061218c84846000856121c4565b949350505050565b60008164010000000084106121bc5760405162461bcd60e51b8152600401610b03919061240c565b509192915050565b6060824710156122055760405162461bcd60e51b81526004018080602001828103825260268152602001806127976026913960400191505060405180910390fd5b61220e8561231f565b61225f576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b6020831061229d5780518252601f19909201916020918201910161227e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146122ff576040519150601f19603f3d011682016040523d82523d6000602084013e612304565b606091505b5091509150612314828286612325565b979650505050505050565b3b151590565b606083156123345750816109d5565b8251156123445782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561197757818101518382015260200161195f565b61190160f01b81526002810192909252602282015260420190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b818110156124385785810183015185820160400152820161241c565b818111156124495783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601390820152724255524e5f4558434545445f42414c414e434560681b604082015260600190565b6020808252601290820152711393d517d6515517d111551154935253915160721b604082015260600190565b6020808252600f908201526e27aba722a92fad22a927afa0a2222960891b604082015260600190565b60208082526011908201527029a822a72222a92fad22a927afa0a2222960791b604082015260600190565b6020808252601a908201527f554e494e495449415445445f434f4e4649475f4348414e474553000000000000604082015260600190565b6020808252601490820152732a24a6a2a627a1a5afa4a9afa727aa2fa7ab22a960611b604082015260600190565b60208082526013908201527210955493925391d7d393d517d0531313d5d151606a1b604082015260600190565b60208082526018908201527f4e4f545f494e43454e54495645535f524543495049454e540000000000000000604082015260600190565b602080825260119082015270494e56414c49445f5349474e415455524560781b604082015260600190565b60208082526011908201527014d251d3905515549157d1561412549151607a1b604082015260600190565b6020808252600c908201526b5a45524f5f4144445245535360a01b604082015260600190565b60208082526010908201526f29a2a72222a92fad22a927afa0a2222960811b604082015260600190565b6020808252601290820152712922a1a2a4ab22a92fad22a927afa0a2222960711b604082015260600190565b60208082526011908201527026a4a72a2faa27afad22a927afa0a2222960791b604082015260600190565b6020808252600d908201526c494e56414c49445f4e4f4e434560981b604082015260600190565b6020808252601690820152754255524e5f46524f4d5f5a45524f5f4144445245535360501b604082015260600190565b60208082526016908201527514d1539117d513d7d513d2d15397d0d3d395149050d560521b604082015260600190565b90815260200190565b918252602082015260400190565b93845260208401929092526001600160a01b03166040830152151560608201526080019056fe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212208d8bd09d771f0321f042575b4d23e9a9f02b5013808902c1eff50b7e9f9cb8fc64736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102d65760003560e01c80636fcfff4511610182578063c3cda520116100e9578063e4a1ecb6116100a2578063ee87ab6b1161007c578063ee87ab6b14610865578063f1127ed81461086d578063f39c38a0146108bf578063ff552d77146108c7576102d6565b8063e4a1ecb61461084d578063e76af32e14610855578063e7a324dc1461085d576102d6565b8063c3cda52014610776578063c4e41b22146107bd578063ce56c454146107c5578063d38bfff4146107f1578063dc23b26514610817578063dd62ed3e1461081f576102d6565b806395d89b411161013b57806395d89b411461068a5780639dc29fac14610692578063a457c2d7146106be578063a9059cbb146106ea578063acff6f7914610716578063b4b5ea5714610750576102d6565b80636fcfff45146105c357806370a0823114610602578063782d6fe11461062857806378e97925146106545780637ecebe001461065c578063924a23b414610682576102d6565b806332c9c8341161024157806356189cb4116101fa5780635c19a95c116101d45780635c19a95c146105855780635d36b190146105ab5780635d587aea146105b35780636eb227ce146105bb576102d6565b806356189cb414610521578063587cde1e146105575780635aa6e6751461057d576102d6565b806332c9c8341461048a57806339509351146104925780633ccdbb28146104be5780634245a580146104f457806342966c68146104fc5780634cde843614610519576102d6565b8063222f5be011610293578063222f5be0146103ca57806322d7bf8d1461040257806323b872dd1461040a57806329cb924d146104405780632fac9cca14610448578063313ce5671461046c576102d6565b806306fdde03146102db578063095ea7b3146103585780630d7a1c621461039857806318160ddd146103b25780631cb6a0e8146103ba57806320606b70146103c2575b600080fd5b6102e36108cf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031d578181015183820152602001610305565b50505050905090810190601f16801561034a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103846004803603604081101561036e57600080fd5b506001600160a01b0381351690602001356108f1565b604080519115158252519081900360200190f35b6103a0610908565b60408051918252519081900360200190f35b6103a061090e565b6103a0610914565b6103a061091a565b610400600480360360608110156103e057600080fd5b506001600160a01b0381358116916020810135909116906040013561093e565b005b6103a061094e565b6103846004803603606081101561042057600080fd5b506001600160a01b03813581169160208101359091169060400135610954565b6103a06109dc565b6104506109e0565b604080516001600160a01b039092168252519081900360200190f35b6104746109ef565b6040805160ff9092168252519081900360200190f35b6103a06109f4565b610384600480360360408110156104a857600080fd5b506001600160a01b0381351690602001356109fa565b610400600480360360608110156104d457600080fd5b506001600160a01b03813581169160208101359160409091013516610a30565b610400610ae4565b6103846004803603602081101561051257600080fd5b5035610bd7565b610384610c15565b6104006004803603606081101561053757600080fd5b506001600160a01b03813581169160208101359091169060400135610c25565b6104506004803603602081101561056d57600080fd5b50356001600160a01b0316610c30565b610450610c4b565b6104006004803603602081101561059b57600080fd5b50356001600160a01b0316610c5a565b610400610c67565b6103a0610d2c565b6103a0610d66565b6105e9600480360360208110156105d957600080fd5b50356001600160a01b0316610d73565b6040805163ffffffff9092168252519081900360200190f35b6103a06004803603602081101561061857600080fd5b50356001600160a01b0316610d8b565b6103a06004803603604081101561063e57600080fd5b506001600160a01b038135169060200135610da6565b6103a0610f8a565b6103a06004803603602081101561067257600080fd5b50356001600160a01b0316610f90565b610384610fa2565b6102e3610fa7565b610400600480360360408110156106a857600080fd5b506001600160a01b038135169060200135610fc9565b610384600480360360408110156106d457600080fd5b506001600160a01b038135169060200135610fd7565b6103846004803603604081101561070057600080fd5b506001600160a01b038135169060200135611039565b6104006004803603608081101561072c57600080fd5b508035906020810135906001600160a01b0360408201351690606001351515611046565b6103a06004803603602081101561076657600080fd5b50356001600160a01b031661113b565b610400600480360360c081101561078c57600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a0013561119e565b6103a06113a2565b610400600480360360408110156107db57600080fd5b50803590602001356001600160a01b03166113a8565b6104006004803603602081101561080757600080fd5b50356001600160a01b03166114d9565b6103a06115ce565b6103a06004803603604081101561083557600080fd5b506001600160a01b03813581169160200135166115d4565b6103a06115ff565b610384611605565b6103a0611615565b6103a0611639565b61089f6004803603604081101561088357600080fd5b5080356001600160a01b0316906020013563ffffffff1661163f565b6040805163ffffffff909316835260208301919091528051918290030190f35b61045061166c565b61045061167b565b6040518060400160405280600681526020016550656e646c6560d01b81525081565b60006108fe3384846116e4565b5060015b92915050565b600d5481565b60035481565b60085481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b610949838383611798565b505050565b60045481565b6000610961848484611798565b604080518082018252601981527f5452414e534645525f4558434545445f414c4c4f57414e4345000000000000006020808301919091526001600160a01b0387166000908152600e825283812033808352925292909220546109d192879290916109cc918790611923565b6116e4565b5060015b9392505050565b4290565b6009546001600160a01b031681565b601281565b600c5481565b336000818152600e602090815260408083206001600160a01b038716845290915281205490916108fe9185906109cc908661168a565b6000546001600160a01b03163314610a81576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b610a956001600160a01b03841682846119ba565b604080516001600160a01b0380861682526020820185905283168183015290517f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e69181900360600190a1505050565b600a54610b0c5760405162461bcd60e51b8152600401610b039061250c565b60405180910390fd5b62093a80600a54014211610b325760405162461bcd60e51b8152600401610b0390612543565b610b3a611a0c565b50600754600481905560085460058190556009546006805460ff600160a01b80850482161515810260ff60a01b196001600160a01b03199094166001600160a01b03968716179390931692909217928390556000600a556040517f83564c1102f308ae821e2b1d74b5cafae42f89d7b2c57a73ad01810469fb2c9996610bcd969095909490811693900490911690612770565b60405180910390a1565b600654600090600160a01b900460ff16610c035760405162461bcd60e51b8152600401610b0390612571565b610c0d3383611acd565b506001919050565b600954600160a01b900460ff1681565b6109498383836116e4565b6010602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b610c643382611b9d565b50565b6001546001600160a01b03163314610cb9576040805162461bcd60e51b815260206004820152601060248201526f57524f4e475f474f5645524e414e434560801b604482015290519081900360640190fd5b600154600054604080516001600160a01b03938416815292909116602083015280517fb0758afd6736a6cb3153d002696dcdd7615f1ff7c626469b3daf3358286c1c249281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6006546000906001600160a01b03163314610d595760405162461bcd60e51b8152600401610b039061259e565b610d61611a0c565b905090565b6000610d61611c1d565b90565b60126020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600f602052604090205490565b6000438210610dc75760405162461bcd60e51b8152600401610b039061248c565b6001600160a01b03831660009081526012602052604090205463ffffffff1680610df5576000915050610902565b6001600160a01b038416600090815260116020908152604080832063ffffffff600019860181168552925290912054168310610e64576001600160a01b03841660009081526011602090815260408083206000199490940163ffffffff16835292905220600101549050610902565b6001600160a01b038416600090815260116020908152604080832083805290915290205463ffffffff16831015610e9f576000915050610902565b600060001982015b8163ffffffff168163ffffffff161115610f53576000600263ffffffff848403166001600160a01b038916600090815260116020908152604080832094909304860363ffffffff8181168452948252918390208351808501909452805490941680845260019094015490830152925090871415610f2e576020015194506109029350505050565b805163ffffffff16871115610f4557819350610f4c565b6001820392505b5050610ea7565b506001600160a01b038516600090815260116020908152604080832063ffffffff9094168352929052206001015491505092915050565b600b5481565b60136020526000908152604090205481565b600181565b6040518060400160405280600681526020016550454e444c4560d01b81525081565b610fd38282611acd565b5050565b60408051808201825260128152714e454741544956455f414c4c4f57414e434560701b602080830191909152336000818152600e83528481206001600160a01b03881682529092529281205490926108fe92909186916109cc91908790611923565b60006108fe338484611798565b6000546001600160a01b03163314611097576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b6001600160a01b0382166110bd5760405162461bcd60e51b8152600401610b039061262b565b60078490556008839055600980546001600160a01b0319166001600160a01b0384161760ff60a01b1916600160a01b831515021790556040517f01c0ca0e9ae895c3d36eca6824cc5bd60faa1048833ef3014f522ee5f1b2397090611129908690869086908690612770565b60405180910390a1505042600a555050565b6001600160a01b03811660009081526012602052604081205463ffffffff16806111665760006109d5565b6001600160a01b038316600090815260116020908152604080832063ffffffff60001986011684529091529020600101549392505050565b60408051808201909152600681526550656e646c6560d01b60209091015260007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667fff2cde021cdee1d25b48654d14cc97c50a36ce29f880cb7d517933c7a82da0cf611208611c38565b3060405160200161121c94939291906123ca565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf88888860405160200161126d94939291906123a6565b6040516020818303038152906040528051906020012090506000828260405160200161129a92919061238b565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516112d794939291906123ee565b6020604051602081039080840390855afa1580156112f9573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661132c5760405162461bcd60e51b8152600401610b03906125d5565b6001600160a01b0381166000908152601360205260409020805460018101909155891461136b5760405162461bcd60e51b8152600401610b03906126d2565b8742111561138b5760405162461bcd60e51b8152600401610b0390612600565b611395818b611b9d565b505050505b505050505050565b60035490565b6000546001600160a01b031633146113f9576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b6040516000906001600160a01b0383169084908381818185875af1925050503d8060008114611444576040519150601f19603f3d011682016040523d82523d6000602084013e611449565b606091505b5050905080611491576040805162461bcd60e51b815260206004820152600f60248201526e15d2551211149055d7d19052531151608a1b604482015290519081900360640190fd5b604080518481526001600160a01b038416602082015281517fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de929181900390910190a1505050565b6000546001600160a01b0316331461152a576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b6001600160a01b038116611574576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f70f2dff90d8145da945114cc37c5ffde0eef9306ad5efbd39cae52dc28f9cbf3916020908290030190a150565b60055481565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b60075481565b600654600160a01b900460ff1681565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600a5481565b60116020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b6001546001600160a01b031681565b6006546001600160a01b031681565b6000828201838110156109d5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b03831661170a5760405162461bcd60e51b8152600401610b03906124b8565b6001600160a01b0382166117305760405162461bcd60e51b8152600401610b03906124e1565b6001600160a01b038084166000818152600e602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061178b908590612759565b60405180910390a3505050565b6001600160a01b0383166117be5760405162461bcd60e51b8152600401610b0390612651565b6001600160a01b0382166117e45760405162461bcd60e51b8152600401610b039061267b565b6001600160a01b03821630141561180d5760405162461bcd60e51b8152600401610b0390612729565b604080518082018252601781527f5452414e534645525f4558434545445f42414c414e43450000000000000000006020808301919091526001600160a01b0386166000908152600f9091529190912054611868918390611923565b6001600160a01b038085166000908152600f60205260408082209390935590841681522054611897908261168a565b6001600160a01b038084166000818152600f602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118e9908590612759565b60405180910390a36001600160a01b0380841660009081526010602052604080822054858416835291205461094992918216911683611c3c565b600081848411156119b25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561197757818101518382015260200161195f565b50505050905090810190601f1680156119a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610949908490611d79565b600080611a17611c1d565b9050600d548111611a2c576000915050610d70565b600d546001015b818111611ac6576101038111611a7157611a6964e8d4a51000611a63600454600c54611e2a90919063ffffffff16565b90611e83565b600c55611a95565b611a9164e8d4a51000611a63600554600354611e2a90919063ffffffff16565b600c555b600654600c54611aae916001600160a01b031690611eea565b600c54611abc90849061168a565b9250600101611a33565b50600d5590565b6001600160a01b038216611af35760405162461bcd60e51b8152600401610b03906126f9565b6001600160a01b0382166000908152600f602052604090205481811015611b2c5760405162461bcd60e51b8152600401610b039061245f565b611b368183611f9e565b6001600160a01b0384166000908152600f6020526040902055600354611b5c9083611f9e565b6003556040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061178b908690612759565b6001600160a01b0380831660008181526010602081815260408084208054600f845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611c17828483611c3c565b50505050565b600062093a80600b54420381611c2f57fe5b04600101905090565b4690565b816001600160a01b0316836001600160a01b031614158015611c5e5750600081115b15610949576001600160a01b03831615611cf0576001600160a01b03831660009081526012602052604081205463ffffffff169081611c9e576000611cd0565b6001600160a01b038516600090815260116020908152604080832063ffffffff60001987011684529091529020600101545b90506000611cde8285611f9e565b9050611cec86848484611ffb565b5050505b6001600160a01b03821615610949576001600160a01b03821660009081526012602052604081205463ffffffff169081611d2b576000611d5d565b6001600160a01b038416600090815260116020908152604080832063ffffffff60001987011684529091529020600101545b90506000611d6b828561168a565b905061139a85848484611ffb565b6000611dce826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661217d9092919063ffffffff16565b80519091501561094957808060200190516020811015611ded57600080fd5b50516109495760405162461bcd60e51b815260040180806020018281038252602a8152602001806127de602a913960400191505060405180910390fd5b600082611e3957506000610902565b82820282848281611e4657fe5b04146109d55760405162461bcd60e51b81526004018080602001828103825260218152602001806127bd6021913960400191505060405180910390fd5b6000808211611ed9576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611ee257fe5b049392505050565b6001600160a01b038216611f105760405162461bcd60e51b8152600401610b03906126a7565b600354611f1d908261168a565b6003556001600160a01b0382166000908152600f6020526040902054611f43908261168a565b6001600160a01b0383166000818152600f60205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f92908590612759565b60405180910390a35050565b600082821115611ff5576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600061203c436040518060400160405280601881526020017f424c4f434b5f4e554d5f4558434545445f33325f424954530000000000000000815250612194565b905060008463ffffffff1611801561208557506001600160a01b038516600090815260116020908152604080832063ffffffff6000198901811685529252909120548282169116145b156120c2576001600160a01b038516600090815260116020908152604080832063ffffffff60001989011684529091529020600101829055612133565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152601184528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260129092529390208054928801909116919092161790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161216e929190612762565b60405180910390a25050505050565b606061218c84846000856121c4565b949350505050565b60008164010000000084106121bc5760405162461bcd60e51b8152600401610b03919061240c565b509192915050565b6060824710156122055760405162461bcd60e51b81526004018080602001828103825260268152602001806127976026913960400191505060405180910390fd5b61220e8561231f565b61225f576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b6020831061229d5780518252601f19909201916020918201910161227e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146122ff576040519150601f19603f3d011682016040523d82523d6000602084013e612304565b606091505b5091509150612314828286612325565b979650505050505050565b3b151590565b606083156123345750816109d5565b8251156123445782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561197757818101518382015260200161195f565b61190160f01b81526002810192909252602282015260420190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b818110156124385785810183015185820160400152820161241c565b818111156124495783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601390820152724255524e5f4558434545445f42414c414e434560681b604082015260600190565b6020808252601290820152711393d517d6515517d111551154935253915160721b604082015260600190565b6020808252600f908201526e27aba722a92fad22a927afa0a2222960891b604082015260600190565b60208082526011908201527029a822a72222a92fad22a927afa0a2222960791b604082015260600190565b6020808252601a908201527f554e494e495449415445445f434f4e4649475f4348414e474553000000000000604082015260600190565b6020808252601490820152732a24a6a2a627a1a5afa4a9afa727aa2fa7ab22a960611b604082015260600190565b60208082526013908201527210955493925391d7d393d517d0531313d5d151606a1b604082015260600190565b60208082526018908201527f4e4f545f494e43454e54495645535f524543495049454e540000000000000000604082015260600190565b602080825260119082015270494e56414c49445f5349474e415455524560781b604082015260600190565b60208082526011908201527014d251d3905515549157d1561412549151607a1b604082015260600190565b6020808252600c908201526b5a45524f5f4144445245535360a01b604082015260600190565b60208082526010908201526f29a2a72222a92fad22a927afa0a2222960811b604082015260600190565b6020808252601290820152712922a1a2a4ab22a92fad22a927afa0a2222960711b604082015260600190565b60208082526011908201527026a4a72a2faa27afad22a927afa0a2222960791b604082015260600190565b6020808252600d908201526c494e56414c49445f4e4f4e434560981b604082015260600190565b6020808252601690820152754255524e5f46524f4d5f5a45524f5f4144445245535360501b604082015260600190565b60208082526016908201527514d1539117d513d7d513d2d15397d0d3d395149050d560521b604082015260600190565b90815260200190565b918252602082015260400190565b93845260208401929092526001600160a01b03166040830152151560608201526080019056fe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212208d8bd09d771f0321f042575b4d23e9a9f02b5013808902c1eff50b7e9f9cb8fc64736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
