{
  "_format": "hh-sol-artifact-1",
  "contractName": "PendlePoolsReadWrapper",
  "sourceName": "contracts/misc/PendlePoolsReadWrapper.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract PendleLiquidityRewardsProxy",
          "name": "_rewardsProxy",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_liqMiningContract",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_expiries",
          "type": "uint256[]"
        },
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "claim",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "rewards",
          "type": "uint256"
        },
        {
          "internalType": "uint256[]",
          "name": "pendingRewards",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "currentEpoch",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_poolOrMarket",
          "type": "address"
        },
        {
          "internalType": "contract PendleLiquidityMining",
          "name": "_staking",
          "type": "address"
        },
        {
          "internalType": "enum PendlePoolsReadWrapper.Type",
          "name": "_type",
          "type": "uint8"
        }
      ],
      "name": "getLiquidityMiningInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "expiry",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "marketSymbol",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "lpTotalSupply",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalStakeLP",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalRewards",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "tokenDecimals",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "xytDecimals",
          "type": "uint8"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "ytotBalance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "ytotWeight",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenBalance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenWeight",
              "type": "uint256"
            }
          ],
          "internalType": "struct PendlePoolsReadWrapper.Reserves",
          "name": "reserves",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract PendleSingleStaking",
          "name": "_staking",
          "type": "address"
        },
        {
          "internalType": "contract PendleSingleStakingManager",
          "name": "_manager",
          "type": "address"
        },
        {
          "internalType": "contract IERC20Ext",
          "name": "_pendle",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getSingleStakingInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalSupply",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "rewardPerBlock",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "userAvailableToStake",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "userAllowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "userShare",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract PendleYieldToken",
          "name": "_pool",
          "type": "address"
        },
        {
          "internalType": "contract PendleLiquidityMining",
          "name": "_staking",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "enum PendlePoolsReadWrapper.Type",
          "name": "_type",
          "type": "uint8"
        }
      ],
      "name": "getStakingInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "expiry",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "numberOfEpochs",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "epochDuration",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "userStaked",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "userAvailableToStake",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "userAllowance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20Ext",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_staking",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_allowance",
          "type": "uint256"
        }
      ],
      "name": "tokenApprove",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506124d8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806312a957241461005c5780637e3350a8146100895780638f4d4bef146100ab578063fb3f4d29146100d3578063fe5ee5bd146100e8575b600080fd5b61006f61006a366004611ebe565b61010d565b6040516100809594939291906123ce565b60405180910390f35b61009c610097366004611e14565b610385565b604051610080939291906122de565b6100be6100b9366004611d6e565b610424565b60405161008099989796959493929190612334565b6100e66100e1366004611dd4565b6109e3565b005b6100fb6100f6366004611f19565b610a69565b604051610080969594939291906123f1565b6000806000806000886001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561014e57600080fd5b505afa158015610162573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610186919061204a565b9450876001600160a01b0316638ae39cac6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101c157600080fd5b505afa1580156101d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f9919061204a565b6040516370a0823160e01b81529094506001600160a01b038816906370a08231906102289089906004016121fc565b60206040518083038186803b15801561024057600080fd5b505afa158015610254573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610278919061204a565b604051636eb1769f60e11b81529093506001600160a01b0388169063dd62ed3e906102a99089908d90600401612210565b60206040518083038186803b1580156102c157600080fd5b505afa1580156102d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f9919061204a565b6040516327e235e360e01b81529092506001600160a01b038a16906327e235e3906103289089906004016121fc565b60206040518083038186803b15801561034057600080fd5b505afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610378919061204a565b9050945094509450945094565b600060606000876001600160a01b03166365a64c9c888888886040518563ffffffff1660e01b81526004016103bd949392919061222a565b600060405180830381600087803b1580156103d757600080fd5b505af11580156103eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104139190810190612062565b919a90995090975095505050505050565b60006060806000806000806000610439611cff565b60008a600181111561044757fe5b141561077d576104568c610fd7565b9b50919850935091506104688c6112a0565b90508b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156104a357600080fd5b505afa1580156104b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104df9190810190611f72565b97508b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561051a57600080fd5b505afa15801561052e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610552919061204a565b604051632bf77f6960e01b81529096506001600160a01b038c1690632bf77f6990610581908c906004016122be565b60806040518083038186803b15801561059957600080fd5b505afa1580156105ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d1919061213b565b9091509050508095505060008b6001600160a01b03166331b641836040518163ffffffff1660e01b8152600401604080518083038186803b15801561061557600080fd5b505afa158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d9190612118565b50905060008c6001600160a01b03166320616536838d6040518363ffffffff1660e01b81526004016106809291906123c0565b60206040518083038186803b15801561069857600080fd5b505afa1580156106ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d0919061204a565b905060006106de428f61133f565b9050633b9aca0061076b8f6001600160a01b031663127b6479846040518263ffffffff1660e01b815260040161071491906122be565b60206040518083038186803b15801561072c57600080fd5b505afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610764919061204a565b849061144a565b8161077257fe5b0496505050506109d4565b60018a600181111561078b57fe5b14156109b35761079a8c6114a3565b9b50919850935091506107ac8c6119b4565b90508b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107e757600080fd5b505afa1580156107fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108239190810190611f72565b97508b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610896919061204a565b955060006108a4428d61133f565b6040516370a0823160e01b81529091506001600160a01b038e16906370a08231906108d3908f906004016121fc565b60206040518083038186803b1580156108eb57600080fd5b505afa1580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610923919061204a565b60405163b40310c960e01b81529096506001600160a01b038d169063b40310c9906109559084906000906004016122c7565b60a06040518083038186803b15801561096d57600080fd5b505afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190612170565b509197506109d49350505050565b60405162461bcd60e51b81526004016109cb90612298565b60405180910390fd5b93979b92969a50939750939750565b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b390610a11908590859060040161227f565b602060405180830381600087803b158015610a2b57600080fd5b505af1158015610a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a639190611db4565b50505050565b6000808080808080876001811115610a7d57fe5b1415610afb57896001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b158015610abc57600080fd5b505afa158015610ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af4919061204a565b9550610ce4565b6001876001811115610b0957fe5b14156109b35760008a6001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190611d52565b905060008b6001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b505afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf79190611d52565b9050816001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3257600080fd5b505afa925050508015610c62575060408051601f3d908101601f19168201909252610c5f9181019061204a565b60015b610cde57806001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9f57600080fd5b505afa158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd7919061204a565b9750610ce1565b97505b50505b886001600160a01b031663173688416040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1d57600080fd5b505afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061204a565b9450886001600160a01b0316634ff0876a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9057600080fd5b505afa158015610da4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc8919061204a565b60405163bab9e5a760e01b81529094506001600160a01b038a169063bab9e5a790610df99089908c906004016122c7565b60206040518083038186803b158015610e1157600080fd5b505afa925050508015610e41575060408051601f3d908101601f19168201909252610e3e9181019061204a565b60015b610ec8576040516327e235e360e01b81526001600160a01b038a16906327e235e390610e71908b906004016121fc565b60206040518083038186803b158015610e8957600080fd5b505afa158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec1919061204a565b9250610ecb565b92505b6040516370a0823160e01b81526001600160a01b038b16906370a0823190610ef7908b906004016121fc565b60206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f47919061204a565b604051636eb1769f60e11b81529092506001600160a01b038b169063dd62ed3e90610f78908b908d90600401612210565b60206040518083038186803b158015610f9057600080fd5b505afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc8919061204a565b90509499939850945094509450565b6060600080600080856001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561101857600080fd5b505afa15801561102c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110509190611d52565b90506000866001600160a01b0316630d9b13d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561108d57600080fd5b505afa1580156110a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c59190611d52565b9050816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261113c9190810190611f72565b9550816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561117757600080fd5b505afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af91906121af565b9450806001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156111ea57600080fd5b505afa1580156111fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122291906121af565b9350866001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611295919061204a565b925050509193509193565b6112a8611cff565b600080600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156112e757600080fd5b505afa1580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f9190612170565b509288526020880191909152604087015260608601525092949350505050565b6000611441600161143b846001600160a01b0316634ff0876a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138257600080fd5b505afa158015611396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ba919061204a565b611435866001600160a01b03166378e979256040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f657600080fd5b505afa15801561140a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142e919061204a565b8890611be1565b90611c3e565b90611ca5565b90505b92915050565b60008261145957506000611444565b8282028284828161146657fe5b04146114415760405162461bcd60e51b81526004018080602001828103825260218152602001806124826021913960400191505060405180910390fd5b6060600080600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156114e457600080fd5b505afa1580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c9190611d52565b90506000866001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561155957600080fd5b505afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115919190611d52565b9050600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115cf57600080fd5b505afa9250505080156115ff575060408051601f3d908101601f191682019092526115fc9181019061204a565b60015b61176157826001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561163c57600080fd5b505afa158015611650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611674919061204a565b9450886001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156116af57600080fd5b505afa1580156116c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e79190611d52565b9150886001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561172257600080fd5b505afa158015611736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175a9190611d52565b905061184c565b809550896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561179d57600080fd5b505afa1580156117b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d59190611d52565b9250896001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561181057600080fd5b505afa158015611824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118489190611d52565b9150505b806001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561188557600080fd5b505afa158015611899573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118c19190810190611f72565b9750806001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156118fc57600080fd5b505afa158015611910573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193491906121af565b9650816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561196f57600080fd5b505afa158015611983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a791906121af565b9550505050509193509193565b6119bc611cff565b600080600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156119fb57600080fd5b505afa158015611a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a339190611d52565b9050806001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6e57600080fd5b505afa925050508015611a9e575060408051601f3d908101601f19168201909252611a9b9181019061204a565b60015b611aa757611aad565b50600191505b8115611b3a57856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611aec57600080fd5b505afa158015611b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b249190611ffc565b506001600160701b039182169550169250611bbd565b856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b7357600080fd5b505afa158015611b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bab9190611ffc565b506001600160701b0390811695501692505b50509082526480000000006020830181905260408301919091526060820152919050565b600082821115611c38576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211611c94576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611c9d57fe5b049392505050565b600082820183811015611441576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040518060800160405280600081526020016000815260200160008152602001600081525090565b803560028110611d3657600080fd5b919050565b80516001600160701b0381168114611d3657600080fd5b600060208284031215611d63578081fd5b815161144181612469565b600080600060608486031215611d82578182fd5b8335611d8d81612469565b92506020840135611d9d81612469565b9150611dab60408501611d27565b90509250925092565b600060208284031215611dc5578081fd5b81518015158114611441578182fd5b600080600060608486031215611de8578283fd5b8335611df381612469565b92506020840135611e0381612469565b929592945050506040919091013590565b600080600080600060808688031215611e2b578081fd5b8535611e3681612469565b94506020860135611e4681612469565b9350604086013567ffffffffffffffff80821115611e62578283fd5b818801915088601f830112611e75578283fd5b813581811115611e83578384fd5b8960208083028501011115611e96578384fd5b6020830195508094505050506060860135611eb081612469565b809150509295509295909350565b60008060008060808587031215611ed3578384fd5b8435611ede81612469565b93506020850135611eee81612469565b92506040850135611efe81612469565b91506060850135611f0e81612469565b939692955090935050565b60008060008060808587031215611f2e578182fd5b8435611f3981612469565b93506020850135611f4981612469565b92506040850135611f5981612469565b9150611f6760608601611d27565b905092959194509250565b600060208284031215611f83578081fd5b815167ffffffffffffffff80821115611f9a578283fd5b818401915084601f830112611fad578283fd5b815181811115611fb957fe5b611fcc601f8201601f1916602001612419565b9150808252856020828501011115611fe2578384fd5b611ff381602084016020860161243d565b50949350505050565b600080600060608486031215612010578081fd5b61201984611d3b565b925061202760208501611d3b565b9150604084015163ffffffff8116811461203f578182fd5b809150509250925092565b60006020828403121561205b578081fd5b5051919050565b600080600060608486031215612076578081fd5b8351925060208085015167ffffffffffffffff80821115612095578384fd5b818701915087601f8301126120a8578384fd5b8151818111156120b457fe5b83810291506120c4848301612419565b8181528481019084860184860187018c10156120de578788fd5b8795505b838610156121005780518352600195909501949186019186016120e2565b50809750505050505050604084015190509250925092565b6000806040838503121561212a578182fd5b505080516020909101519092909150565b60008060008060808587031215612150578182fd5b8451935060208501519250604085015191506060850151611f0e81612469565b600080600080600060a08688031215612187578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6000602082840312156121c0578081fd5b815160ff81168114611441578182fd5b600081518084526121e881602086016020860161243d565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03858116825260606020830181905282018490526000906001600160fb1b0385111561225b578182fd5b60208502808760808601378301608001918252929092166040909101529392505050565b6001600160a01b03929092168252602082015260400190565b6020808252600c908201526b696e76616c6964207479706560a01b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b60006060820185835260206060818501528186518084526080860191508288019350845b8181101561231e57845183529383019391830191600101612302565b5050809350505050826040830152949350505050565b60006101808b835280602084015261234e8184018c6121d0565b90508281036040840152612362818b6121d0565b9150508760608301528660808301528560a083015260ff851660c083015260ff841660e083015282516101008301526020830151610120830152604083015161014083015260608301516101608301529a9950505050505050505050565b918252602082015260400190565b948552602085019390935260408401919091526060830152608082015260a00190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60405181810167ffffffffffffffff8111828210171561243557fe5b604052919050565b60005b83811015612458578181015183820152602001612440565b83811115610a635750506000910152565b6001600160a01b038116811461247e57600080fd5b5056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e1503f43f776eab3af47058c267207c5c196ef52065b8a1d8ddac173f8983c2764736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806312a957241461005c5780637e3350a8146100895780638f4d4bef146100ab578063fb3f4d29146100d3578063fe5ee5bd146100e8575b600080fd5b61006f61006a366004611ebe565b61010d565b6040516100809594939291906123ce565b60405180910390f35b61009c610097366004611e14565b610385565b604051610080939291906122de565b6100be6100b9366004611d6e565b610424565b60405161008099989796959493929190612334565b6100e66100e1366004611dd4565b6109e3565b005b6100fb6100f6366004611f19565b610a69565b604051610080969594939291906123f1565b6000806000806000886001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561014e57600080fd5b505afa158015610162573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610186919061204a565b9450876001600160a01b0316638ae39cac6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101c157600080fd5b505afa1580156101d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f9919061204a565b6040516370a0823160e01b81529094506001600160a01b038816906370a08231906102289089906004016121fc565b60206040518083038186803b15801561024057600080fd5b505afa158015610254573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610278919061204a565b604051636eb1769f60e11b81529093506001600160a01b0388169063dd62ed3e906102a99089908d90600401612210565b60206040518083038186803b1580156102c157600080fd5b505afa1580156102d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f9919061204a565b6040516327e235e360e01b81529092506001600160a01b038a16906327e235e3906103289089906004016121fc565b60206040518083038186803b15801561034057600080fd5b505afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610378919061204a565b9050945094509450945094565b600060606000876001600160a01b03166365a64c9c888888886040518563ffffffff1660e01b81526004016103bd949392919061222a565b600060405180830381600087803b1580156103d757600080fd5b505af11580156103eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104139190810190612062565b919a90995090975095505050505050565b60006060806000806000806000610439611cff565b60008a600181111561044757fe5b141561077d576104568c610fd7565b9b50919850935091506104688c6112a0565b90508b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156104a357600080fd5b505afa1580156104b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104df9190810190611f72565b97508b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561051a57600080fd5b505afa15801561052e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610552919061204a565b604051632bf77f6960e01b81529096506001600160a01b038c1690632bf77f6990610581908c906004016122be565b60806040518083038186803b15801561059957600080fd5b505afa1580156105ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d1919061213b565b9091509050508095505060008b6001600160a01b03166331b641836040518163ffffffff1660e01b8152600401604080518083038186803b15801561061557600080fd5b505afa158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d9190612118565b50905060008c6001600160a01b03166320616536838d6040518363ffffffff1660e01b81526004016106809291906123c0565b60206040518083038186803b15801561069857600080fd5b505afa1580156106ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d0919061204a565b905060006106de428f61133f565b9050633b9aca0061076b8f6001600160a01b031663127b6479846040518263ffffffff1660e01b815260040161071491906122be565b60206040518083038186803b15801561072c57600080fd5b505afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610764919061204a565b849061144a565b8161077257fe5b0496505050506109d4565b60018a600181111561078b57fe5b14156109b35761079a8c6114a3565b9b50919850935091506107ac8c6119b4565b90508b6001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107e757600080fd5b505afa1580156107fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108239190810190611f72565b97508b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610896919061204a565b955060006108a4428d61133f565b6040516370a0823160e01b81529091506001600160a01b038e16906370a08231906108d3908f906004016121fc565b60206040518083038186803b1580156108eb57600080fd5b505afa1580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610923919061204a565b60405163b40310c960e01b81529096506001600160a01b038d169063b40310c9906109559084906000906004016122c7565b60a06040518083038186803b15801561096d57600080fd5b505afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190612170565b509197506109d49350505050565b60405162461bcd60e51b81526004016109cb90612298565b60405180910390fd5b93979b92969a50939750939750565b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b390610a11908590859060040161227f565b602060405180830381600087803b158015610a2b57600080fd5b505af1158015610a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a639190611db4565b50505050565b6000808080808080876001811115610a7d57fe5b1415610afb57896001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b158015610abc57600080fd5b505afa158015610ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af4919061204a565b9550610ce4565b6001876001811115610b0957fe5b14156109b35760008a6001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190611d52565b905060008b6001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b505afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf79190611d52565b9050816001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3257600080fd5b505afa925050508015610c62575060408051601f3d908101601f19168201909252610c5f9181019061204a565b60015b610cde57806001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9f57600080fd5b505afa158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd7919061204a565b9750610ce1565b97505b50505b886001600160a01b031663173688416040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1d57600080fd5b505afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d55919061204a565b9450886001600160a01b0316634ff0876a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9057600080fd5b505afa158015610da4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc8919061204a565b60405163bab9e5a760e01b81529094506001600160a01b038a169063bab9e5a790610df99089908c906004016122c7565b60206040518083038186803b158015610e1157600080fd5b505afa925050508015610e41575060408051601f3d908101601f19168201909252610e3e9181019061204a565b60015b610ec8576040516327e235e360e01b81526001600160a01b038a16906327e235e390610e71908b906004016121fc565b60206040518083038186803b158015610e8957600080fd5b505afa158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec1919061204a565b9250610ecb565b92505b6040516370a0823160e01b81526001600160a01b038b16906370a0823190610ef7908b906004016121fc565b60206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f47919061204a565b604051636eb1769f60e11b81529092506001600160a01b038b169063dd62ed3e90610f78908b908d90600401612210565b60206040518083038186803b158015610f9057600080fd5b505afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc8919061204a565b90509499939850945094509450565b6060600080600080856001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561101857600080fd5b505afa15801561102c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110509190611d52565b90506000866001600160a01b0316630d9b13d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561108d57600080fd5b505afa1580156110a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c59190611d52565b9050816001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261113c9190810190611f72565b9550816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561117757600080fd5b505afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af91906121af565b9450806001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156111ea57600080fd5b505afa1580156111fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122291906121af565b9350866001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611295919061204a565b925050509193509193565b6112a8611cff565b600080600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156112e757600080fd5b505afa1580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f9190612170565b509288526020880191909152604087015260608601525092949350505050565b6000611441600161143b846001600160a01b0316634ff0876a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138257600080fd5b505afa158015611396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ba919061204a565b611435866001600160a01b03166378e979256040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f657600080fd5b505afa15801561140a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142e919061204a565b8890611be1565b90611c3e565b90611ca5565b90505b92915050565b60008261145957506000611444565b8282028284828161146657fe5b04146114415760405162461bcd60e51b81526004018080602001828103825260218152602001806124826021913960400191505060405180910390fd5b6060600080600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156114e457600080fd5b505afa1580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c9190611d52565b90506000866001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561155957600080fd5b505afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115919190611d52565b9050600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115cf57600080fd5b505afa9250505080156115ff575060408051601f3d908101601f191682019092526115fc9181019061204a565b60015b61176157826001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561163c57600080fd5b505afa158015611650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611674919061204a565b9450886001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156116af57600080fd5b505afa1580156116c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e79190611d52565b9150886001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561172257600080fd5b505afa158015611736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175a9190611d52565b905061184c565b809550896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561179d57600080fd5b505afa1580156117b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d59190611d52565b9250896001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561181057600080fd5b505afa158015611824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118489190611d52565b9150505b806001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561188557600080fd5b505afa158015611899573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118c19190810190611f72565b9750806001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156118fc57600080fd5b505afa158015611910573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193491906121af565b9650816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561196f57600080fd5b505afa158015611983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a791906121af565b9550505050509193509193565b6119bc611cff565b600080600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156119fb57600080fd5b505afa158015611a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a339190611d52565b9050806001600160a01b031663e184c9be6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6e57600080fd5b505afa925050508015611a9e575060408051601f3d908101601f19168201909252611a9b9181019061204a565b60015b611aa757611aad565b50600191505b8115611b3a57856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611aec57600080fd5b505afa158015611b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b249190611ffc565b506001600160701b039182169550169250611bbd565b856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b7357600080fd5b505afa158015611b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bab9190611ffc565b506001600160701b0390811695501692505b50509082526480000000006020830181905260408301919091526060820152919050565b600082821115611c38576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211611c94576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611c9d57fe5b049392505050565b600082820183811015611441576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040518060800160405280600081526020016000815260200160008152602001600081525090565b803560028110611d3657600080fd5b919050565b80516001600160701b0381168114611d3657600080fd5b600060208284031215611d63578081fd5b815161144181612469565b600080600060608486031215611d82578182fd5b8335611d8d81612469565b92506020840135611d9d81612469565b9150611dab60408501611d27565b90509250925092565b600060208284031215611dc5578081fd5b81518015158114611441578182fd5b600080600060608486031215611de8578283fd5b8335611df381612469565b92506020840135611e0381612469565b929592945050506040919091013590565b600080600080600060808688031215611e2b578081fd5b8535611e3681612469565b94506020860135611e4681612469565b9350604086013567ffffffffffffffff80821115611e62578283fd5b818801915088601f830112611e75578283fd5b813581811115611e83578384fd5b8960208083028501011115611e96578384fd5b6020830195508094505050506060860135611eb081612469565b809150509295509295909350565b60008060008060808587031215611ed3578384fd5b8435611ede81612469565b93506020850135611eee81612469565b92506040850135611efe81612469565b91506060850135611f0e81612469565b939692955090935050565b60008060008060808587031215611f2e578182fd5b8435611f3981612469565b93506020850135611f4981612469565b92506040850135611f5981612469565b9150611f6760608601611d27565b905092959194509250565b600060208284031215611f83578081fd5b815167ffffffffffffffff80821115611f9a578283fd5b818401915084601f830112611fad578283fd5b815181811115611fb957fe5b611fcc601f8201601f1916602001612419565b9150808252856020828501011115611fe2578384fd5b611ff381602084016020860161243d565b50949350505050565b600080600060608486031215612010578081fd5b61201984611d3b565b925061202760208501611d3b565b9150604084015163ffffffff8116811461203f578182fd5b809150509250925092565b60006020828403121561205b578081fd5b5051919050565b600080600060608486031215612076578081fd5b8351925060208085015167ffffffffffffffff80821115612095578384fd5b818701915087601f8301126120a8578384fd5b8151818111156120b457fe5b83810291506120c4848301612419565b8181528481019084860184860187018c10156120de578788fd5b8795505b838610156121005780518352600195909501949186019186016120e2565b50809750505050505050604084015190509250925092565b6000806040838503121561212a578182fd5b505080516020909101519092909150565b60008060008060808587031215612150578182fd5b8451935060208501519250604085015191506060850151611f0e81612469565b600080600080600060a08688031215612187578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6000602082840312156121c0578081fd5b815160ff81168114611441578182fd5b600081518084526121e881602086016020860161243d565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03858116825260606020830181905282018490526000906001600160fb1b0385111561225b578182fd5b60208502808760808601378301608001918252929092166040909101529392505050565b6001600160a01b03929092168252602082015260400190565b6020808252600c908201526b696e76616c6964207479706560a01b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b60006060820185835260206060818501528186518084526080860191508288019350845b8181101561231e57845183529383019391830191600101612302565b5050809350505050826040830152949350505050565b60006101808b835280602084015261234e8184018c6121d0565b90508281036040840152612362818b6121d0565b9150508760608301528660808301528560a083015260ff851660c083015260ff841660e083015282516101008301526020830151610120830152604083015161014083015260608301516101608301529a9950505050505050505050565b918252602082015260400190565b948552602085019390935260408401919091526060830152608082015260a00190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60405181810167ffffffffffffffff8111828210171561243557fe5b604052919050565b60005b83811015612458578181015183820152602001612440565b83811115610a635750506000910152565b6001600160a01b038116811461247e57600080fd5b5056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e1503f43f776eab3af47058c267207c5c196ef52065b8a1d8ddac173f8983c2764736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
