{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "name": "log",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "log_address",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "val",
          "type": "uint256[]"
        }
      ],
      "name": "log_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "int256[]",
          "name": "val",
          "type": "int256[]"
        }
      ],
      "name": "log_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "val",
          "type": "address[]"
        }
      ],
      "name": "log_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "log_bytes",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "log_bytes32",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "int256",
          "name": "",
          "type": "int256"
        }
      ],
      "name": "log_int",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "val",
          "type": "address"
        }
      ],
      "name": "log_named_address",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "val",
          "type": "uint256[]"
        }
      ],
      "name": "log_named_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int256[]",
          "name": "val",
          "type": "int256[]"
        }
      ],
      "name": "log_named_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "val",
          "type": "address[]"
        }
      ],
      "name": "log_named_array",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "val",
          "type": "bytes"
        }
      ],
      "name": "log_named_bytes",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "val",
          "type": "bytes32"
        }
      ],
      "name": "log_named_bytes32",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "val",
          "type": "int256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "decimals",
          "type": "uint256"
        }
      ],
      "name": "log_named_decimal_int",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "val",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "decimals",
          "type": "uint256"
        }
      ],
      "name": "log_named_decimal_uint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "val",
          "type": "int256"
        }
      ],
      "name": "log_named_int",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "val",
          "type": "string"
        }
      ],
      "name": "log_named_string",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "key",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "val",
          "type": "uint256"
        }
      ],
      "name": "log_named_uint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "name": "log_string",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "log_uint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "logs",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "IS_TEST",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "failed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializePepperstakeContractWithDefaults",
      "outputs": [
        {
          "internalType": "contract PepperStake",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializePepperstakeContractWithFees",
      "outputs": [
        {
          "internalType": "contract PepperStake",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "setUp",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testApproveEmptyList",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testApproveForParticipants",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testApproveInvalidParticipant",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testApproveWindowOver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testCreatorParticipation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testCreatorParticipationWithIncorrectAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testFeeSumExceeds100Percent",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testParticipantAllowList",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testPostCompletionWindowDistribution",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testPostCompletionWindowDistributionAlreadyCalled",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testPostCompletionWindowDistributionReturnWindowNotOver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testSponsor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testSponsorReturnWindowOver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStakeAlreadyParticipating",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStakeIncorrectAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStakeMaxParticipantsReached",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "testStakeReturnWindowOver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x60806040526007805460ff191660011790556200001b620000be565b600855604380546001600160a01b03199081167389ac24e9d325e5935dd9098bddc7f9879a6b0e291790915560448054821673cdaeda3f1bd11c1ec375a3746d05b54634c58c2517905560458054821673e80fb92299ed640261f22bb7d7b1b877eb589e8517905560468054909116733445f4fe153b2c8b267ef6203c478ca3a552827a179055633b9aca00604755348015620000b757600080fd5b5062001872565b6000604051806102200160405280604051806060016040528060405180604001604052806005815260200164105b9d9a5b60da1b8152508152602001617a6981526020016040518060400160405280601581526020017f687474703a2f2f3132372e302e302e313a383534350000000000000000000000815250815250815260200160405180606001604052806040518060400160405280600781526020016612185c991a185d60ca1b8152508152602001617a6981526020016040518060400160405280601581526020017f687474703a2f2f3132372e302e302e313a383534350000000000000000000000815250815250815260200160405180606001604052806040518060400160405280600781526020016613585a5b9b995d60ca1b8152508152602001600181526020016040518060400160405280601f81526020017f68747470733a2f2f6170692e6d7963727970746f6170692e636f6d2f657468008152508152508152602001604051806060016040528060405180604001604052806006815260200165476f65726c6960d01b8152508152602001600581526020016040518060600160405280603c815260200162008055603c9139905281526040805160a0808201835260076060808401918252665365706f6c696160c81b60808086019190915291845262aa36a760208581019190915285518087018752601781527f68747470733a2f2f7270632e7365706f6c69612e646576000000000000000000818301528587015280870194909452845180840186526008818301908152674f7074696d69736d60c01b828501528152600a8186015285518087018752601b81527f68747470733a2f2f6d61696e6e65742e6f7074696d69736d2e696f000000000081870152818701528587015284518084018652600e8183019081526d4f7074696d69736d476f65726c6960901b8285015281526101a48186015285518087018752601a81527f68747470733a2f2f676f65726c692e6f7074696d69736d2e696f00000000000081870152818701528187015284518084018652600b8183019081526a417262697472756d4f6e6560a81b82850152815261a4b18186015285518087018752601c81527f68747470733a2f2f617262312e617262697472756d2e696f2f7270630000000081870152818701528287015284518084018652601181830190815270417262697472756d4f6e65476f65726c6960781b9382019390935291825262066eed82850152845190810185526025808252929095019490938401929091906200809190830139905281526040805160a08082018352600c60608084019182526b417262697472756d4e6f766160a01b60808086019190915291845261a4ba60208581019190915285518087018752601c81527f68747470733a2f2f6e6f76612e617262697472756d2e696f2f72706300000000818301528587015280870194909452845180840186526007818301908152662837b63cb3b7b760c91b82850152815260898186015285518087018752601781527f68747470733a2f2f706f6c79676f6e2d7270632e636f6d00000000000000000081870152818701528587015284518084018652600d8183019081526c506f6c79676f6e4d756d62616960981b828501528152620138818186015285518087018752601e81527f68747470733a2f2f7270632d6d756d6261692e6d617469632e746f6461790000818701528187015281870152845192830185526009838201908152684176616c616e63686560b81b84840152835261a86a83850152845190810185526025808252919095019491938401926200803090830139815250815260200160405180606001604052806040518060400160405280600d81526020016c4176616c616e63686546756a6960981b815250815260200161a86981526020016040518060600160405280602a8152602001620080b6602a9139815250815260200160405180606001604052806040518060400160405280600d81526020016c21373129b6b0b93a21b430b4b760991b815250815260200160388152602001604051806060016040528060218152602001620080e060219139815250815260200160405180606001604052806040518060400160405280601481526020017f426e62536d617274436861696e546573746e65740000000000000000000000008152508152602001606181526020016040518060600160405280602e815260200162008002602e9139905281526040805160a081018252600b606082019081526a23b737b9b4b9a1b430b4b760a91b60808301528152606460208281019190915282518084018452601b81527f68747470733a2f2f7270632e676e6f736973636861696e2e636f6d00000000008183015292820192909252910152805180516009919082908190620007b1908262001522565b506020820151600182015560408201516002820190620007d2908262001522565b5050506020820151805160038301908190620007ef908262001522565b50602082015160018201556040820151600282019062000810908262001522565b50505060408201518051600683019081906200082d908262001522565b5060208201516001820155604082015160028201906200084e908262001522565b50505060608201518051600983019081906200086b908262001522565b5060208201516001820155604082015160028201906200088c908262001522565b50505060808201518051600c8301908190620008a9908262001522565b506020820151600182015560408201516002820190620008ca908262001522565b50505060a08201518051600f8301908190620008e7908262001522565b50602082015160018201556040820151600282019062000908908262001522565b50505060c082015180516012830190819062000925908262001522565b50602082015160018201556040820151600282019062000946908262001522565b50505060e082015180516015830190819062000963908262001522565b50602082015160018201556040820151600282019062000984908262001522565b505050610100820151805160188301908190620009a2908262001522565b506020820151600182015560408201516002820190620009c3908262001522565b5050506101208201518051601b8301908190620009e1908262001522565b50602082015160018201556040820151600282019062000a02908262001522565b5050506101408201518051601e830190819062000a20908262001522565b50602082015160018201556040820151600282019062000a41908262001522565b50505061016082015180516021830190819062000a5f908262001522565b50602082015160018201556040820151600282019062000a80908262001522565b50505061018082015180516024830190819062000a9e908262001522565b50602082015160018201556040820151600282019062000abf908262001522565b5050506101a082015180516027830190819062000add908262001522565b50602082015160018201556040820151600282019062000afe908262001522565b5050506101c08201518051602a830190819062000b1c908262001522565b50602082015160018201556040820151600282019062000b3d908262001522565b5050506101e08201518051602d830190819062000b5b908262001522565b50602082015160018201556040820151600282019062000b7c908262001522565b50505061020082015180516030830190819062000b9a908262001522565b50602082015160018201556040820151600282019062000bbb908262001522565b50505090505060007f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663a85a84186040518163ffffffff1660e01b81526004016000604051808303816000875af115801562000c27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000c51919081019062001672565b905060005b81518110156200135f5760008083838151811062000c785762000c78620017ff565b602002602001015160006002811062000c955762000c95620017ff565b602002015184848151811062000caf5762000caf620017ff565b602002602001015160016002811062000ccc5762000ccc620017ff565b60200201519150915062000d048260405180604001604052806005815260200164185b9d9a5b60da1b8152506200136860201b60201c565b1562000d1f57600b62000d18828262001522565b5062001347565b62000d5082604051806040016040528060078152602001661a185c991a185d60ca1b8152506200136860201b60201c565b1562000d6457600e62000d18828262001522565b62000d9582604051806040016040528060078152602001661b585a5b9b995d60ca1b8152506200136860201b60201c565b1562000da957601162000d18828262001522565b62000dd98260405180604001604052806006815260200165676f65726c6960d01b8152506200136860201b60201c565b1562000ded57601462000d18828262001522565b62000e1e82604051806040016040528060078152602001667365706f6c696160c81b8152506200136860201b60201c565b1562000e3257601762000d18828262001522565b62000e6482604051806040016040528060088152602001676f7074696d69736d60c01b8152506200136860201b60201c565b1562000e7857601a62000d18828262001522565b62000ed9826040518060400160405280600f81526020016e6f7074696d69736d5f676f65726c6960881b8152506040518060400160405280600f81526020016e6f7074696d69736d2d676f65726c6960881b815250620013c560201b60201c565b1562000eed57601d62000d18828262001522565b62000f48826040518060400160405280600c81526020016b617262697472756d5f6f6e6560a01b8152506040518060400160405280600c81526020016b617262697472756d2d6f6e6560a01b815250620013c560201b60201c565b1562000f5c57602062000d18828262001522565b62000fd9826040518060400160405280601381526020017f617262697472756d5f6f6e655f676f65726c69000000000000000000000000008152506040518060400160405280601381526020017f617262697472756d2d6f6e652d676f65726c6900000000000000000000000000815250620013c560201b60201c565b1562000fed57602362000d18828262001522565b6200104a826040518060400160405280600d81526020016c617262697472756d5f6e6f766160981b8152506040518060400160405280600d81526020016c617262697472756d2d6e6f766160981b815250620013c560201b60201c565b156200105e57602662000d18828262001522565b6200108f82604051806040016040528060078152602001663837b63cb3b7b760c91b8152506200136860201b60201c565b15620010a357602962000d18828262001522565b62001102826040518060400160405280600e81526020016d706f6c79676f6e5f6d756d62616960901b8152506040518060400160405280600e81526020016d706f6c79676f6e2d6d756d62616960901b815250620013c560201b60201c565b156200111657602c62000d18828262001522565b6200114982604051806040016040528060098152602001686176616c616e63686560b81b8152506200136860201b60201c565b156200115d57602f62000d18828262001522565b620011bc826040518060400160405280600e81526020016d6176616c616e6368655f66756a6960901b8152506040518060400160405280600e81526020016d6176616c616e6368652d66756a6960901b815250620013c560201b60201c565b15620011d057603262000d18828262001522565b62001231826040518060400160405280600f81526020016e3137312fb9b6b0b93a2fb1b430b4b760891b8152506040518060400160405280600f81526020016e31373116b9b6b0b93a16b1b430b4b760891b815250620013c560201b60201c565b156200124557603562000d18828262001522565b620012c2826040518060400160405280601781526020017f626e625f736d6172745f636861696e5f746573746e65740000000000000000008152506040518060400160405280601781526020017f626e622d736d6172742d636861696e2d746573746e6574000000000000000000815250620013c560201b60201c565b15620012d657603862000d18828262001522565b62001331826040518060400160405280600c81526020016b33b737b9b4b9afb1b430b4b760a11b8152506040518060400160405280600c81526020016b33b737b9b4b996b1b430b4b760a11b815250620013c560201b60201c565b156200134757603b62001345828262001522565b505b50508080620013569062001815565b91505062000c56565b50600091505090565b6000816040516020016200137d91906200183d565b6040516020818303038152906040528051906020012083604051602001620013a691906200183d565b6040516020818303038152906040528051906020012014905092915050565b600082604051602001620013da91906200183d565b60405160208183030381529060405280519060200120846040516020016200140391906200183d565b604051602081830303815290604052805190602001201480620014755750816040516020016200143491906200183d565b60405160208183030381529060405280519060200120846040516020016200145d91906200183d565b60405160208183030381529060405280519060200120145b949350505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620014a857607f821691505b602082108103620014c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200151d57600081815260208120601f850160051c81016020861015620014f85750805b601f850160051c820191505b81811015620015195782815560010162001504565b5050505b505050565b81516001600160401b038111156200153e576200153e6200147d565b62001556816200154f845462001493565b84620014cf565b602080601f8311600181146200158e5760008415620015755750858301515b600019600386901b1c1916600185901b17855562001519565b600085815260208120601f198616915b82811015620015bf578886015182559484019460019091019084016200159e565b5085821015620015de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604080519081016001600160401b03811182821017156200161357620016136200147d565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200164457620016446200147d565b604052919050565b60005b83811015620016695781810151838201526020016200164f565b50506000910152565b6000602082840312156200168557600080fd5b81516001600160401b03808211156200169d57600080fd5b818401915084601f830112620016b257600080fd5b815181811115620016c757620016c76200147d565b620016d860208260051b0162001619565b8082825260208201915060208360051b860101925087831115620016fb57600080fd5b602085015b83811015620017f3578051858111156200171957600080fd5b8601603f81018a136200172b57600080fd5b62001735620015ee565b808b6060840111156200174757600080fd5b602083015b60608401811015620017e1578051898111156200176857600080fd5b8401603f81018e136200177a57600080fd5b60208101518a8111156200179257620017926200147d565b620017a7601f8201601f191660200162001619565b8181528f6040838501011115620017bd57600080fd5b620017d08260208301604086016200164c565b85525050602092830192016200174c565b50855250506020928301920162001700565b50979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200183657634e487b7160e01b600052601160045260246000fd5b5060010190565b60208152600082518060208401526200185e8160408501602087016200164c565b601f01601f19169190910160400192915050565b61678080620018826000396000f3fe60806040523480156200001157600080fd5b5060043610620001695760003560e01c8063523a6ee811620000d3578063ba414fa61162000086578063ba414fa61462000237578063bff886511462000252578063e608f5bf146200025c578063e63bdc2c1462000266578063fa7626d41462000270578063fdb5d2db146200027e57600080fd5b8063523a6ee814620001fb57806369ded12214620002055780637b5340cd146200020f5780637d28054b14620002195780638d61b56e1462000223578063ac6a4242146200022d57600080fd5b8063281fef2f116200012c578063281fef2f14620001bf5780632f64752714620001c95780633a1143da14620001d35780633a1a859414620001dd5780634c50463214620001e757806351e7974814620001f157600080fd5b80630a9254e4146200016e5780630afd5562146200017a5780630bb3f8f114620001a15780630d930ecd14620001ab5780631fc168ee14620001b5575b600080fd5b6200017862000288565b005b62000184620006b8565b6040516001600160a01b0390911681526020015b60405180910390f35b62000178620008f2565b6200017862000b85565b6200017862000dba565b620001786200116d565b62000178620013fb565b62000178620016b6565b620001786200194a565b6200017862001a96565b6200017862001cba565b6200017862001f2a565b62000178620020d5565b6200018462002420565b620001786200269e565b620001786200284e565b62000178620029af565b6200024162002c08565b604051901515815260200162000198565b6200017862002d35565b6200017862002ec3565b6200017862002ffc565b600754620002419060ff1681565b62000178620035a5565b604354604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600b60448201526a1c185c9d1a58da5c185b9d60aa1b60648201526000805160206200672b8339815191529063c657c71890608401600060405180830381600087803b158015620002fe57600080fd5b505af115801562000313573d6000803e3d6000fd5b505060448054604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600c918101919091526b3830b93a34b1b4b830b73a1960a11b60648201526000805160206200672b833981519152925063c657c7189150608401600060405180830381600087803b1580156200039157600080fd5b505af1158015620003a6573d6000803e3d6000fd5b5050604554604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600760448201526639b837b739b7b960c91b60648201526000805160206200672b833981519152925063c657c7189150608401600060405180830381600087803b1580156200041c57600080fd5b505af115801562000431573d6000803e3d6000fd5b5050604654604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600a60448201526939bab832b93b34b9b7b960b11b60648201526000805160206200672b833981519152925063c657c7189150608401600060405180830381600087803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505060435460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d6310000060248201526000805160206200672b833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200052757600080fd5b505af11580156200053c573d6000803e3d6000fd5b50506044805460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d6310000060248201526000805160206200672b833981519152935063c88a5e6d925001600060405180830381600087803b158015620005a357600080fd5b505af1158015620005b8573d6000803e3d6000fd5b505060455460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d6310000060248201526000805160206200672b833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200062057600080fd5b505af115801562000635573d6000803e3d6000fd5b505060465460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d6310000060248201526000805160206200672b833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200069d57600080fd5b505af1158015620006b2573d6000803e3d6000fd5b50505050565b60408051600180825281830190925260009182919060208083019080368337505060465482519293506001600160a01b03169183915060009062000700576200070062003bb5565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090507f69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d2360601c8160008151811062000777576200077762003bb5565b6001600160a01b0392909216602092830291909101820152604080516002808252606082018352600093919290918301908036833701905050905066b1a2bc2ec5000081600081518110620007d057620007d062003bb5565b6020026020010181815250506706f05b59d3b2000081600181518110620007fb57620007fb62003bb5565b602090810291909101810191909152604080516101c08101825285815281516000808252818501845282850191909152818301869052825181815280850184526060830152608082018590526212750060a0830152606460c083015260e0820181905261010082018190526001610120830181905262989680610140840181905261016084018390526101808401819052845195860185528286526101a08401959095529251849384939291839085908490620008b89062003b91565b620008c7949392919062003db3565b604051809103906000f080158015620008e4573d6000803e3d6000fd5b509998505050505050505050565b6000620008fe62002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200095657600080fd5b505af11580156200096b573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620009b257600080fd5b505af1158015620009c7573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b833981519152935063ca669fa792506024019050600060405180830381600087803b15801562000a2257600080fd5b505af115801562000a37573d6000803e3d6000fd5b50600092506001915062000a489050565b60405190808252806020026020018201604052801562000a72578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062000a995762000a9962003bb5565b6001600160a01b03928316602091820292909201015260405163b468aca760e01b81529083169063b468aca79062000ad690849060040162003def565b600060405180830381600087803b15801562000af157600080fd5b505af115801562000b06573d6000803e3d6000fd5b50505050816001600160a01b0316631f7180dd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b49573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b6f919062003e3e565b60011462000b815762000b8162003e58565b5050565b600062000b9162002420565b6045546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b15801562000be957600080fd5b505af115801562000bfe573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000c4557600080fd5b505af115801562000c5a573d6000803e3d6000fd5b5050505050806001600160a01b031663aa546a9e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c9e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cc4919062003e3e565b66b1a2bc2ec500001462000cdc5762000cdc62003e58565b806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000d1f57600080fd5b505af115801562000d34573d6000803e3d6000fd5b5050505050806001600160a01b031663aa546a9e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000d78573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d9e919062003e3e565b67016345785d8a00001462000db75762000db762003e58565b50565b60408051600180825281830190925260009160208083019080368337505060435482519293506001600160a01b03169183915060009062000dff5762000dff62003bb5565b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905066b1a2bc2ec500008160008151811062000e5a5762000e5a62003bb5565b6020908102919091018101919091526040805160006101c082018181526101e08301845282528184018690528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152855160c0830152600160e0830181905261010083018290526101208301819052610140830182905261016083018290526101808301829052835194850184528185526101a0830194909452915190929083908390819062000f149062003b91565b62000f23949392919062003db3565b604051809103906000f08015801562000f40573d6000803e3d6000fd5b5060435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b15801562000f9957600080fd5b505af115801562000fae573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200106557600080fd5b505af11580156200107a573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316631939666560e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb39350620010d6920162003e6e565b600060405180830381600087803b158015620010f157600080fd5b505af115801562001106573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200114d57600080fd5b505af115801562001162573d6000803e3d6000fd5b505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec5000081600081518110620011ad57620011ad62003bb5565b6020908102919091018101919091526040805160006101c082018181526101e083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a083015260c0820181905260e08201819052610100820181905260016101208301819052610140830182905261016083018290526101808301829052835194850184528185526101a083019490945291519092908390839081906200126f9062003b91565b6200127e949392919062003db3565b604051809103906000f0801580156200129b573d6000803e3d6000fd5b506043546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b158015620012f457600080fd5b505af115801562001309573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316631e74b6b760e11b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062001365920162003e6e565b600060405180830381600087803b1580156200138057600080fd5b505af115801562001395573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620013dc57600080fd5b505af1158015620013f1573d6000803e3d6000fd5b5050505050505050565b60006200140762002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200145f57600080fd5b505af115801562001474573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620014bb57600080fd5b505af1158015620014d0573d6000803e3d6000fd5b506000935060019250620014e2915050565b6040519080825280602002602001820160405280156200150c578160200160208202803683370190505b5090507fffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac6860601c8160008151811062001549576200154962003bb5565b6001600160a01b0392831660209182029290920101526046546040516303223eab60e11b8152911660048201526000805160206200672b833981519152906306447d5690602401600060405180830381600087803b158015620015ab57600080fd5b505af1158015620015c0573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166379c6621560e01b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb393506200161c920162003e6e565b600060405180830381600087803b1580156200163757600080fd5b505af11580156200164c573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca791506200167e90849060040162003def565b600060405180830381600087803b1580156200169957600080fd5b505af1158015620016ae573d6000803e3d6000fd5b505050505050565b6000620016c262002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200171a57600080fd5b505af11580156200172f573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200177657600080fd5b505af11580156200178b573d6000803e3d6000fd5b5050505050806001600160a01b031663362f04c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017f5919062003e3e565b60011462001807576200180762003e58565b60445460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200185c57600080fd5b505af115801562001871573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f16706f05b59d3b200006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620018b957600080fd5b505af1158015620018ce573d6000803e3d6000fd5b5050505050806001600160a01b031663362f04c06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001912573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001938919062003e3e565b60021462000db75762000db762003e58565b60006200195662002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b158015620019ae57600080fd5b505af1158015620019c3573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062001a1f920162003e6e565b600060405180830381600087803b15801562001a3a57600080fd5b505af115801562001a4f573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f1668e1bc9bf0400006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200169957600080fd5b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec500008160008151811062001ad65762001ad662003bb5565b6020908102919091018101919091526040805160006101c082018181526101e083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152606460c083015260e0820181905261010082018190526001610120830152610140820181905261016082018190526101808201819052825193840183528084526101a0820193909352604354825163ca669fa760e01b81526001600160a01b039091166004820152915190926000805160206200672b8339815191529263ca669fa7926024808301939282900301818387803b15801562001bd757600080fd5b505af115801562001bec573d6000803e3d6000fd5b50505050600066b1a2bc2ec5000060018360008060405162001c0e9062003b91565b62001c1d949392919062003db3565b6040518091039082f090508015801562001c3b573d6000803e3d6000fd5b509050806001600160a01b031663362f04c06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001c7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ca3919062003e3e565b60011462001cb55762001cb562003e58565b505050565b600062001cc662002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b15801562001d1e57600080fd5b505af115801562001d33573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562001d7a57600080fd5b505af115801562001d8f573d6000803e3d6000fd5b50506040516372eb5f8160e11b81526213c68060048201526000805160206200672b833981519152935063e5d6bf0292506024019050600060405180830381600087803b15801562001de057600080fd5b505af115801562001df5573d6000803e3d6000fd5b50600092506001915062001e069050565b60405190808252806020026020018201604052801562001e30578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062001e575762001e5762003bb5565b6001600160a01b0392831660209182029290920101526046546040516303223eab60e11b8152911660048201526000805160206200672b833981519152906306447d5690602401600060405180830381600087803b15801562001eb957600080fd5b505af115801562001ece573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb393506200161c920162003e6e565b600062001f3662002420565b6043546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b15801562001f8e57600080fd5b505af115801562001fa3573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562001fea57600080fd5b505af115801562001fff573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316635fdadce760e01b179052915163f28dceb360e01b81526000805160206200672b833981519152955063f28dceb394506200205e935090910162003e6e565b600060405180830381600087803b1580156200207957600080fd5b505af11580156200208e573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200169957600080fd5b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec500008160008151811062002115576200211562003bb5565b6020908102919091018101919091526040805160006101c082018181526101e0830184528252825181815280850184528285015282518181528085018452828401528251818152938401909252909160608201908152602081018490526212750060408201526064606082015260006080820181905260a0820152600160c0820181905260475460e090920191620021ad9162003e8a565b8152600060208083018290526040808401839052805180830182529283526060909301919091528151600480825260248201845291810180516001600160e01b03166352265f9760e11b179052915163f28dceb360e01b81529293506000805160206200672b8339815191529263f28dceb3926200222e9290910162003e6e565b600060405180830381600087803b1580156200224957600080fd5b505af11580156200225e573d6000803e3d6000fd5b50505050600181600080604051620022769062003b91565b62002285949392919062003db3565b604051809103906000f080158015620022a2573d6000803e3d6000fd5b50506040805160006101c082018181526101e0830184528252825181815260208082018552808401919091528351828152808201855283850152835182815280820185526060840152608083018690526212750060a0840152606460c084015260e0830182905261010083018290526001610120840152610140830182905261016083018290526101808301829052835180820185529182526101a08301919091528251600480825260248201855291810180516001600160e01b03166352265f9760e11b179052925163f28dceb360e01b81529193506000805160206200672b8339815191529263f28dceb3926200239c920162003e6e565b600060405180830381600087803b158015620023b757600080fd5b505af1158015620023cc573d6000803e3d6000fd5b505050506001816047546001620023e4919062003e8a565b6000604051620023f49062003b91565b62002403949392919062003db3565b604051809103906000f080158015620006b2573d6000803e3d6000fd5b60408051600180825281830190925260009182919060208083019080368337505060465482519293506001600160a01b03169183915060009062002468576200246862003bb5565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090507f69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d2360601c81600081518110620024df57620024df62003bb5565b6001600160a01b0392909216602092830291909101820152604080516002808252606082018352600093919290918301908036833701905050905066b1a2bc2ec500008160008151811062002538576200253862003bb5565b6020026020010181815250506706f05b59d3b200008160018151811062002563576200256362003bb5565b6020026020010181815250506000604051806101c00160405280858152602001600067ffffffffffffffff811115620025a057620025a062003b9f565b604051908082528060200260200182016040528015620025ca578160200160208202803683370190505b5081526020808201869052604080516000808252928101825292019190508152602001838152602001621275008152602001606481526020016000151581526020016000151581526020016001151581526020016000815260200160006001600160a01b03168152602001600081526020016040518060200160405280600081525081525090506000600182600080604051620026679062003b91565b62002676949392919062003db3565b604051809103906000f08015801562002693573d6000803e3d6000fd5b509695505050505050565b6000620026aa62002420565b6040516372eb5f8160e11b81526213c68060048201529091506000805160206200672b8339815191529063e5d6bf0290602401600060405180830381600087803b158015620026f857600080fd5b505af11580156200270d573d6000803e3d6000fd5b50506045546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200672b83398151915292506306447d569150602401600060405180830381600087803b1580156200276657600080fd5b505af11580156200277b573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb39350620027d7920162003e6e565b600060405180830381600087803b158015620027f257600080fd5b505af115801562002807573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200169957600080fd5b60006200285a62002420565b6046546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b158015620028b257600080fd5b505af1158015620028c7573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b031663066a900960e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062002923920162003e6e565b600060405180830381600087803b1580156200293e57600080fd5b505af115801562002953573d6000803e3d6000fd5b50505050806001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200299357600080fd5b505af1158015620029a8573d6000803e3d6000fd5b5050505050565b6000620029bb62002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b15801562002a1357600080fd5b505af115801562002a28573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562002a6f57600080fd5b505af115801562002a84573d6000803e3d6000fd5b506000935083925062002a95915050565b60405190808252806020026020018201604052801562002abf578160200160208202803683370190505b506046546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b15801562002b1857600080fd5b505af115801562002b2d573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca7915062002b5f90849060040162003def565b600060405180830381600087803b15801562002b7a57600080fd5b505af115801562002b8f573d6000803e3d6000fd5b50505050816001600160a01b0316631f7180dd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002bd2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002bf8919062003e3e565b1562000b815762000b8162003e58565b600754600090610100900460ff161562002c2b5750600754610100900460ff1690565b60006000805160206200672b8339815191523b1562002d3057604080516000805160206200672b833981519152602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162002cb2917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162003eb2565b60408051601f198184030181529082905262002cce9162003ee5565b6000604051808303816000865af19150503d806000811462002d0d576040519150601f19603f3d011682016040523d82523d6000602084013e62002d12565b606091505b509150508080602001905181019062002d2c919062003f03565b9150505b919050565b600062002d4162002420565b6040516372eb5f8160e11b81526213c68060048201529091506000805160206200672b8339815191529063e5d6bf0290602401600060405180830381600087803b15801562002d8f57600080fd5b505af115801562002da4573d6000803e3d6000fd5b50506043546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200672b83398151915292506306447d569150602401600060405180830381600087803b15801562002dfd57600080fd5b505af115801562002e12573d6000803e3d6000fd5b50505050806001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002e5257600080fd5b505af115801562002e67573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166376e5413b60e11b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062002923920162003e6e565b600062002ecf62002420565b6040516372eb5f8160e11b81526213c68060048201529091506000805160206200672b8339815191529063e5d6bf0290602401600060405180830381600087803b15801562002f1d57600080fd5b505af115801562002f32573d6000803e3d6000fd5b50506043546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200672b83398151915292506306447d569150602401600060405180830381600087803b15801562002f8b57600080fd5b505af115801562002fa0573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb393506200205e920162003e6e565b60006200300862002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200306057600080fd5b505af115801562003075573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620030bc57600080fd5b505af1158015620030d1573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200312c57600080fd5b505af115801562003141573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200318857600080fd5b505af11580156200319d573d6000803e3d6000fd5b505060455460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b833981519152935063ca669fa792506024019050600060405180830381600087803b158015620031f857600080fd5b505af11580156200320d573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200325457600080fd5b505af115801562003269573d6000803e3d6000fd5b5050505050620032c2816001600160a01b031631670214e8348c4f00006040518060400160405280601981526020017f62616c616e6365206973206e6f7420302e3135206574686572000000000000008152506200391c565b60408051600180825281830190925260009160208083019080368337505060435482519293506001600160a01b03169183915060009062003307576200330762003bb5565b6001600160a01b03928316602091820292909201015260465460405163ca669fa760e01b8152911660048201526000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200336957600080fd5b505af11580156200337e573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca79150620033b090849060040162003def565b600060405180830381600087803b158015620033cb57600080fd5b505af1158015620033e0573d6000803e3d6000fd5b5050505062003438826001600160a01b03163167016345785d8a00006040518060400160405280601881526020017f62616c616e6365206973206e6f7420302e3120657468657200000000000000008152506200391c565b6040516372eb5f8160e11b81526213c68060048201526000805160206200672b8339815191529063e5d6bf0290602401600060405180830381600087803b1580156200348357600080fd5b505af115801562003498573d6000803e3d6000fd5b50506046546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200672b83398151915292506306447d569150602401600060405180830381600087803b158015620034f157600080fd5b505af115801562003506573d6000803e3d6000fd5b50505050816001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200354657600080fd5b505af11580156200355b573d6000803e3d6000fd5b5050505062000b81826001600160a01b0316316000604051806040016040528060168152602001753130b630b731b29034b9903737ba10181032ba3432b960511b8152506200391c565b6040805160018082528183019092526000916020808301908036833701905050905067016345785d8a000081600081518110620035e657620035e662003bb5565b6020908102919091018101919091526040805160006101c082018181526101e083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152606460c083015260e0820181905261010082018190526001610120830152610140820181905261016082018190526101808201819052825193840183528084526101a0820193909352604354825163ca669fa760e01b81526001600160a01b039091166004820152915190926000805160206200672b8339815191529263ca669fa7926024808301939282900301818387803b158015620036e757600080fd5b505af1158015620036fc573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062003758920162003e6e565b600060405180830381600087803b1580156200377357600080fd5b505af115801562003788573d6000803e3d6000fd5b505050506706f05b59d3b20000600182600080604051620037a99062003b91565b620037b8949392919062003db3565b6040518091039082f0905080158015620037d6573d6000803e3d6000fd5b505060435460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200382d57600080fd5b505af115801562003842573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb393506200389e920162003e6e565b600060405180830381600087803b158015620038b957600080fd5b505af1158015620038ce573d6000803e3d6000fd5b50505050670214e8348c4f0000600182600080604051620038ef9062003b91565b620038fe949392919062003db3565b6040518091039082f0905080158015620006b2573d6000803e3d6000fd5b81831462001cb5577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838160405162003955919062003f27565b60405180910390a162001cb5838380821462000b81577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620039d69060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a162000b816000805160206200672b8339815191523b1562003b8057604080516000805160206200672b833981519152602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003b1b929160200162003eb2565b60408051601f198184030181529082905262003b379162003ee5565b6000604051808303816000865af19150503d806000811462003b76576040519150601f19603f3d011682016040523d82523d6000602084013e62003b7b565b606091505b505050505b6007805461ff001916610100179055565b6127d28062003f5983390190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101562003c065781516001600160a01b03168752958201959082019060010162003bdf565b509495945050505050565b600081518084526020808501945080840160005b8381101562003c065781518752958201959082019060010162003c25565b60005b8381101562003c6057818101518382015260200162003c46565b50506000910152565b6000815180845262003c8381602086016020860162003c43565b601f01601f19169290920160200192915050565b60006101c0825181855262003caf8286018262003bcb565b9150506020830151848203602086015262003ccb828262003bcb565b9150506040830151848203604086015262003ce7828262003bcb565b9150506060830151848203606086015262003d03828262003bcb565b9150506080830151848203608086015262003d1f828262003c11565b91505060a083015160a085015260c083015160c085015260e083015162003d4a60e086018215159052565b5061010083810151151590850152610120808401511515908501526101408084015190850152610160808401516001600160a01b03169085015261018080840151908501526101a0808401518583038287015262003da9838262003c69565b9695505050505050565b84815260806020820152600062003dce608083018662003c97565b6040830194909452506001600160a01b039190911660609091015292915050565b6020808252825182820181905260009190848201906040850190845b8181101562003e325783516001600160a01b03168352928401929184019160010162003e0b565b50909695505050505050565b60006020828403121562003e5157600080fd5b5051919050565b634e487b7160e01b600052600160045260246000fd5b60208152600062003e83602083018462003c69565b9392505050565b8082018082111562003eac57634e487b7160e01b600052601160045260246000fd5b92915050565b6001600160e01b031983168152815160009062003ed781600485016020870162003c43565b919091016004019392505050565b6000825162003ef981846020870162003c43565b9190910192915050565b60006020828403121562003f1657600080fd5b8151801515811462003e8357600080fd5b60408152600560408201526422b93937b960d91b606082015260806020820152600062003e83608083018462003c6956fe6080604052633b9aca00600055604051620027d2380380620027d28339810160408190526200002e9162000a59565b60005461018084015161014085015162000049908562000c4b565b62000055919062000c4b565b111562000075576040516352265f9760e11b815260040160405180910390fd5b600184905560005b835151811015620000ee5760016003600086600001518481518110620000a757620000a762000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000e58162000c7d565b9150506200007d565b5060005b836060015151811015620001c457600160046000866060015184815181106200011f576200011f62000c67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000866060015184815181106200017d576200017d62000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620001bb8162000c7d565b915050620000f2565b508260e0015115620002495760005b83602001515181101562000247576001600260008660200151848151811062000200576200020062000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200023e8162000c7d565b915050620001d3565b505b60005b836080015151811015620002bc576001600560008660800151848151811062000279576200027962000c67565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620002b39062000c7d565b9150506200024c565b5060408301518051620002d891600691602090910190620007a4565b5060a083015160075560c0830151600855610100808401516009805461012087015160e088015162ffff001990921693151590940262ff000019169290921762010000931515939093029290921760ff19169015151790556101a0830151600a9062000345908262000d28565b50825180516200035e91601191602090910190620007a4565b50306000908152600360205260409020805460ff19166001179055610140830151600b55610160830151600c80546001600160a01b039283166001600160a01b031991821617909155610180850151600d55600e849055600f805492841692909116919091179055600754620003d5904262000c4b565b6012556000601381905560148190556015819055601681905560178190556018556019805461ffff1916905534156200041257620004126200041c565b5050505062000e0a565b60095460ff1680156200043f57503360009081526002602052604090205460ff16155b156200045e57604051631939666560e21b815260040160405180910390fd5b600854601354106200048357604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615620004ba57604051635fdadce760e01b815260040160405180910390fd5b601254421115620004de576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff166200050f57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192620005d58362000c7d565b91905055503460166000828254620005ee919062000c4b565b9250508190555060006200061334600e54600054620006c760201b62000af61760201c565b905060006200063334600b54600054620006c760201b62000af61760201c565b905060006200065334600d54600054620006c760201b62000af61760201c565b905060008162000664848662000c4b565b62000670919062000c4b565b9050806018600082825462000686919062000c4b565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b60008080600019858709858702925082811083820303915050806000036200070657838281620006fb57620006fb62000df4565b04925050506200079d565b8381106200073557604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b828054828255906000526020600020908101928215620007fc579160200282015b82811115620007fc57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620007c5565b506200080a9291506200080e565b5090565b5b808211156200080a57600081556001016200080f565b634e487b7160e01b600052604160045260246000fd5b6040516101c081016001600160401b038111828210171562000861576200086162000825565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000892576200089262000825565b604052919050565b60006001600160401b03821115620008b657620008b662000825565b5060051b60200190565b80516001600160a01b0381168114620008d857600080fd5b919050565b600082601f830112620008ef57600080fd5b815160206200090862000902836200089a565b62000867565b82815260059290921b840181019181810190868411156200092857600080fd5b8286015b848110156200094e576200094081620008c0565b83529183019183016200092c565b509695505050505050565b600082601f8301126200096b57600080fd5b815160206200097e62000902836200089a565b82815260059290921b840181019181810190868411156200099e57600080fd5b8286015b848110156200094e5780518352918301918301620009a2565b80518015158114620008d857600080fd5b600082601f830112620009de57600080fd5b81516001600160401b03811115620009fa57620009fa62000825565b602062000a10601f8301601f1916820162000867565b828152858284870101111562000a2557600080fd5b60005b8381101562000a4557858101830151828201840152820162000a28565b506000928101909101919091529392505050565b6000806000806080858703121562000a7057600080fd5b845160208601519094506001600160401b038082111562000a9057600080fd5b908601906101c0828903121562000aa657600080fd5b62000ab06200083b565b82518281111562000ac057600080fd5b62000ace8a828601620008dd565b82525060208301518281111562000ae457600080fd5b62000af28a828601620008dd565b60208301525060408301518281111562000b0b57600080fd5b62000b198a828601620008dd565b60408301525060608301518281111562000b3257600080fd5b62000b408a828601620008dd565b60608301525060808301518281111562000b5957600080fd5b62000b678a82860162000959565b60808301525060a083015160a082015260c083015160c082015262000b8f60e08401620009bb565b60e082015261010062000ba4818501620009bb565b9082015261012062000bb8848201620009bb565b90820152610140838101519082015261016062000bd7818501620008c0565b9082015261018083810151908201526101a0808401518381111562000bfb57600080fd5b62000c098b828701620009cc565b8284015250508095505050506040850151915062000c2a60608601620008c0565b905092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000c615762000c6162000c35565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000c925762000c9262000c35565b5060010190565b600181811c9082168062000cae57607f821691505b60208210810362000ccf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000d2357600081815260208120601f850160051c8101602086101562000cfe5750805b601f850160051c820191505b8181101562000d1f5782815560010162000d0a565b5050505b505050565b81516001600160401b0381111562000d445762000d4462000825565b62000d5c8162000d55845462000c99565b8462000cd5565b602080601f83116001811462000d94576000841562000d7b5750858301515b600019600386901b1c1916600185901b17855562000d1f565b600085815260208120601f198616915b8281101562000dc55788860151825594840194600190910190840162000da4565b508582101562000de45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601260045260246000fd5b6119b88062000e1a6000396000f3fe6080604052600436106101b75760003560e01c80637df7c74f116100ec578063b468aca71161008a578063db231a4f11610064578063db231a4f146104db578063dcfba2ba146104f0578063e548e3e714610510578063f3ac01b91461054057600080fd5b8063b468aca71461046b578063cebf058f1461048b578063d50267ee146104ab57600080fd5b8063922fce95116100c6578063922fce95146104065780639340fd511461042557806394409a561461043f578063aa546a9e1461045557600080fd5b80637df7c74f146103975780638b301e2b146103b65780638f57727d146103d657600080fd5b8063362f04c01161015957806356539f391161013357806356539f391461034e5780635d758d391461036357806360c6d8ae1461037957806377c936621461038f57600080fd5b8063362f04c01461030e5780633a4b66f1146103245780633ccd928a1461032e57600080fd5b8063157135661161019557806315713566146102945780631f7180dd146102be57806324924bf7146102e257806334908c16146102f857600080fd5b806303ee438c146101bc57806309e69ede146101e75780630e6fdaa11461025c575b600080fd5b3480156101c857600080fd5b506101d1610556565b6040516101de91906114ee565b60405180910390f35b3480156101f357600080fd5b50610234610202366004611558565b6002602052600090815260409020805460019091015460ff808316926101008104821692620100009091049091169084565b60408051941515855292151560208501529015159183019190915260608201526080016101de565b34801561026857600080fd5b5061027c610277366004611573565b6105e4565b6040516001600160a01b0390911681526020016101de565b3480156102a057600080fd5b506019546102ae9060ff1681565b60405190151581526020016101de565b3480156102ca57600080fd5b506102d460145481565b6040519081526020016101de565b3480156102ee57600080fd5b506102d460085481565b34801561030457600080fd5b506102d460175481565b34801561031a57600080fd5b506102d460135481565b61032c61060e565b005b34801561033a57600080fd5b5061027c610349366004611573565b610618565b34801561035a57600080fd5b506001546102d4565b34801561036f57600080fd5b506102d460075481565b34801561038557600080fd5b506102d460185481565b61032c610628565b3480156103a357600080fd5b506009546102ae90610100900460ff1681565b3480156103c257600080fd5b5061027c6103d1366004611573565b610699565b3480156103e257600080fd5b506102ae6103f1366004611558565b60046020526000908152604090205460ff1681565b34801561041257600080fd5b506019546102ae90610100900460ff1681565b34801561043157600080fd5b506009546102ae9060ff1681565b34801561044b57600080fd5b506102d460165481565b34801561046157600080fd5b506102d460155481565b34801561047757600080fd5b5061032c610486366004611669565b6106a9565b34801561049757600080fd5b506009546102ae9062010000900460ff1681565b3480156104b757600080fd5b506102ae6104c6366004611573565b60056020526000908152604090205460ff1681565b3480156104e757600080fd5b5061032c61086c565b3480156104fc57600080fd5b5061032c61050b3660046116a6565b61090b565b34801561051c57600080fd5b506102ae61052b366004611558565b60036020526000908152604090205460ff1681565b34801561054c57600080fd5b506102d460125481565b600a8054610563906116f4565b80601f016020809104026020016040519081016040528092919081815260200182805461058f906116f4565b80156105dc5780601f106105b1576101008083540402835291602001916105dc565b820191906000526020600020905b8154815290600101906020018083116105bf57829003601f168201915b505050505081565b601081815481106105f457600080fd5b6000918252602090912001546001600160a01b0316905081565b610616610bcd565b565b601181815481106105f457600080fd5b60125442111561064b576040516362ca2fcd60e01b815260040160405180910390fd5b346015600082825461065d9190611744565b909155505060405134815233907f74194cee4daf68c6858b41efe9729cf57988cee7f447442f39a1e2adafd4e0219060200160405180910390a2565b600681815481106105f457600080fd5b3360009081526003602052604090205460ff166106d9576040516364f5dc8560e01b815260040160405180910390fd5b6012544211156106fc576040516362ca2fcd60e01b815260040160405180910390fd5b60005b81518110156107da576002600083838151811061071e5761071e61175d565b6020908102919091018101516001600160a01b0316825281019190915260400160002054610100900460ff16610767576040516379c6621560e01b815260040160405180910390fd5b6002600083838151811061077d5761077d61175d565b6020908102919091018101516001600160a01b031682528101919091526040016000205462010000900460ff16156107c8576040516379c6621560e01b815260040160405180910390fd5b806107d281611773565b9150506106ff565b5060005b81518110156108215760008282815181106107fb576107fb61175d565b6020026020010151905061080e81610e41565b508061081981611773565b9150506107de565b506019805460ff1916600117905560405133907f440c93edea69d1cf0502a6e259d2bcaf3e0a4f16428ddd3b6f5b68081e27eea3906108619084906117d0565b60405180910390a250565b601254421161088e5760405163066a900960e21b815260040160405180910390fd5b601954610100900460ff16156108b7576040516376e5413b60e11b815260040160405180910390fd5b6108bf610fed565b6108c7611174565b6108cf611323565b6019805461ff00191661010017905560405133907f8e4581edbcde6e54b523f4d359eb0eff7308e8d3e14ff8eac7e7705b4b98a62a90600090a2565b6001600160a01b03821660009081526004602052604090205460ff166109445760405163d67d8ec560e01b815260040160405180910390fd5b60405163091f613f60e11b8152829060009081906001600160a01b0384169063123ec27e906109779087906004016117d0565b600060405180830381865afa158015610994573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109bc91908101906117e3565b9150915060008167ffffffffffffffff8111156109db576109db61158c565b604051908082528060200260200182016040528015610a04578160200160208202803683370190505b5090506000805b8451811015610a9757848181518110610a2657610a2661175d565b602002602001015115610a8557868181518110610a4557610a4561175d565b6020026020010151838381518110610a5f57610a5f61175d565b6001600160a01b039092166020928302919091019091015281610a8181611773565b9250505b80610a8f81611773565b915050610a0b565b5060405163b468aca760e01b8152309063b468aca790610abb9085906004016117d0565b600060405180830381600087803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b5050505050505050505050565b6000808060001985870985870292508281108382030391505080600003610b3057838281610b2657610b2661188b565b0492505050610bc6565b838110610b5e57604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60095460ff168015610bef57503360009081526002602052604090205460ff16155b15610c0d57604051631939666560e21b815260040160405180910390fd5b60085460135410610c3157604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615610c6757604051635fdadce760e01b815260040160405180910390fd5b601254421115610c8a576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff16610cba57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192610d7e83611773565b91905055503460166000828254610d959190611744565b925050819055506000610dad34600e54600054610af6565b90506000610dc034600b54600054610af6565b90506000610dd334600d54600054610af6565b9050600081610de28486611744565b610dec9190611744565b90508060186000828254610e009190611744565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b6001600160a01b03811660009081526002602090815260408083208151608081018352815460ff80821615158352610100820481161515958301959095526201000090049093161515918301919091526001015460608201819052600e548354929392610eaf929190610af6565b90506000610ec68360600151600b54600054610af6565b90506000610edd8460600151600d54600054610af6565b9050600081610eec8486611744565b610ef69190611744565b90506000818660600151610f0a91906118a1565b6040519091506001600160a01b0388169082156108fc029083906000818181858888f19350505050158015610f43573d6000803e3d6000fd5b506001600160a01b0387166000908152600260205260408120805462ff00001916620100001790556014805491610f7983611773565b91905055508060176000828254610f909190611744565b9091555050606080870151604080519182526020820185905281018390526001600160a01b038916917f3c6d034538fc1be4c1c02283083c593ad4546ace8a6713cb5fb2ecb705a41446910160405180910390a250505050505050565b6014541561061657600060145460155461100791906118b4565b9050600060145467ffffffffffffffff8111156110265761102661158c565b60405190808252806020026020018201604052801561104f578160200160208202803683370190505b5090506000805b60135481101561112f576000601082815481106110755761107561175d565b60009182526020808320909101546001600160a01b0316808352600290915260409091205490915060ff62010000909104161561111c576040516001600160a01b0382169086156108fc029087906000818181858888f193505050501580156110e2573d6000803e3d6000fd5b50808484815181106110f6576110f661175d565b6001600160a01b03909216602092830291909101909101528261111881611773565b9350505b508061112781611773565b915050611056565b5060155460405133917f2114d896257ce5a58e1c18ae0d1cb1bd56f2f18c8b5a78e4541b48f40883b5af9161116791869188906118d6565b60405180910390a2505050565b6000611187601654600e54600054610af6565b9050600061119c601654600b54600054610af6565b905060006111b1601654600d54600054610af6565b6011549091506000906111c490836118b4565b9050831561120857600f546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015611206573d6000803e3d6000fd5b505b821561124a57600c546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611248573d6000803e3d6000fd5b505b81156112c55760005b6011548110156112c357601181815481106112705761127061175d565b60009182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156112b0573d6000803e3d6000fd5b50806112bb81611773565b915050611253565b505b600f54600c5460405133927ff50e8e029e43d877ce362cea5cb5693fcf553b41d0bc26d03ee286b56964bafb926113159289926001600160a01b03908116928a9291169089906011908a906118fb565b60405180910390a250505050565b600060145460135461133591906118a1565b11156106165760095460609062010000900460ff168015611359575060195460ff16155b156113c05760108054806020026020016040519081016040528092919081815260200182805480156113b457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611396575b5050505050905061141e565b600680548060200260200160405190810160405280929190818152602001828054801561141657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113f8575b505050505090505b601454601354479160009161143391906118a1565b61143d90836118b4565b905060005b83518110156114b05783818151811061145d5761145d61175d565b60200260200101516001600160a01b03166108fc839081150290604051600060405180830381858888f1935050505015801561149d573d6000803e3d6000fd5b50806114a881611773565b915050611442565b50336001600160a01b03167f1a50eba3476dd09ccdbee500a30b43381479c55b92f8ea25850f819ec591a520848484604051611167939291906118d6565b600060208083528351808285015260005b8181101561151b578581018301518582016040015282016114ff565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461155357600080fd5b919050565b60006020828403121561156a57600080fd5b610bc68261153c565b60006020828403121561158557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115cb576115cb61158c565b604052919050565b600067ffffffffffffffff8211156115ed576115ed61158c565b5060051b60200190565b600082601f83011261160857600080fd5b8135602061161d611618836115d3565b6115a2565b82815260059290921b8401810191818101908684111561163c57600080fd5b8286015b8481101561165e576116518161153c565b8352918301918301611640565b509695505050505050565b60006020828403121561167b57600080fd5b813567ffffffffffffffff81111561169257600080fd5b61169e848285016115f7565b949350505050565b600080604083850312156116b957600080fd5b6116c28361153c565b9150602083013567ffffffffffffffff8111156116de57600080fd5b6116ea858286016115f7565b9150509250929050565b600181811c9082168061170857607f821691505b60208210810361172857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156117575761175761172e565b92915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016117855761178561172e565b5060010190565b600081518084526020808501945080840160005b838110156117c55781516001600160a01b0316875295820195908201906001016117a0565b509495945050505050565b602081526000610bc6602083018461178c565b600080604083850312156117f657600080fd5b825167ffffffffffffffff81111561180d57600080fd5b8301601f8101851361181e57600080fd5b8051602061182e611618836115d3565b82815260059290921b8301810191818101908884111561184d57600080fd5b938201935b8385101561187a578451801515811461186b5760008081fd5b82529382019390820190611852565b969091015195979596505050505050565b634e487b7160e01b600052601260045260246000fd5b818103818111156117575761175761172e565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006118e9606083018661178c565b60208301949094525060400152919050565b600060e08201898352602060018060a01b03808b1682860152896040860152808916606086015287608086015260e060a0860152828754808552610100870191508860005283600020945060005b81811015611967578554841683526001958601959285019201611949565b5050809450505050508260c08301529897505050505050505056fea26469706673582212209a4c52bf904012786dbf4b13678b4ede180c0089fbc1fbf7a309a4faac35883a64736f6c634300081100330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220ac3575868ff18a50680fdefcb0420f8fd03900621dbaa4458fb22d7786c7701e64736f6c6343000811003368747470733a2f2f646174612d736565642d7072656273632d312d73312e62696e616e63652e6f72673a3835343568747470733a2f2f6170692e617661782e6e6574776f726b2f6578742f62632f432f72706368747470733a2f2f676f65726c692e696e667572612e696f2f76332f383438343230373862303939343636333863303331353766383334303532313368747470733a2f2f676f65726c692d726f6c6c75702e617262697472756d2e696f2f72706368747470733a2f2f6170692e617661782d746573742e6e6574776f726b2f6578742f62632f432f72706368747470733a2f2f6273632d6461746173656564312e62696e616e63652e6f7267",
    "sourceMap": "179:14833:27:-:0;;;1572:26:0;;;-1:-1:-1;;1572:26:0;1594:4;1572:26;;;650:14:5;:12;:14::i;:::-;620:44;;218:74:27;;;-1:-1:-1;;;;;;218:74:27;;;250:42;218:74;;;;298:84;;;;;339:43;298:84;;;388:66;;;;;416:38;388:66;;;460:72;;;;;;491:41;460:72;;;939:13;921:31;;179:14833;;;;;;;;;;;;6228:3879:5;6269:7;6353:1679;;;;;;;;6381:46;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6381:46:5;;;;;;;6396:5;6381:46;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6450:48;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6450:48:5;;;;;;;6467:5;6450:48;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6521:54;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6521:54:5;;;;;;;6538:1;6521:54;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;6597:82;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6597:82:5;;;;;;;6613:1;6597:82;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;6870:53;;;;;;;;;;;;;;;;;-1:-1:-1;;;6870:53:5;;;;;;;;;;;6887:8;6353:1679;6870:53;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;;;;6947:52;;;;;;;;;;;;;;-1:-1:-1;;;6947:52:5;;;;;;6965:2;6947:52;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7029:58;;;;;;;;;;;;;;-1:-1:-1;;;7029:58:5;;;;;;7053:3;7029:58;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7114:59;;;;;;;;;;;;;;-1:-1:-1;;;7114:59:5;;;;;;7135:5;7114:59;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7206:75;;;;;;;;;;;;;;-1:-1:-1;;;7206:75:5;;;;;;;;;;7233:6;7206:75;;;;;;;;;;;;;;;6353:1679;;;;;7206:75;;;;;;;;;;;;;;;6353:1679;;7309:60;;;;;;;;;;;;;;;;;-1:-1:-1;;;7309:60:5;;;;;;;;;;;7331:5;6353:1679;7309:60;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;;;;7392:48;;;;;;;;;;;;;;-1:-1:-1;;;7392:48:5;;;;;;7409:3;7392:48;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7469:63;;;;;;;;;;;;;;-1:-1:-1;;;7469:63:5;;;;;;7492:5;7469:63;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7557:66;;;;;;;;;;;;;;-1:-1:-1;;;7557:66:5;;;;;;7576:5;7557:66;;;;;;;;;;;;;;;6353:1679;;;;;7557:66;;;;;;;;;;;;;6353:1679;;;;7652:75;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7652:75:5;;;;;;;7675:5;7652:75;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7756:63;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7756:63:5;;;;;;;7779:2;7756:63;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;;7855:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7885:2;7855:83;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;7965:56;;;;;;;;;;;;;;;-1:-1:-1;;;7965:56:5;;;;;;7986:3;6353:1679;7965:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6353:1679;;;6341:1691;;;;:9;;:1691;:9;;;;:1691;;:9;:1691;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6341:1691:5;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6341:1691:5;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8125:23;245:28;237:37;;-1:-1:-1;;;;;8152:10:5;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8152:12:5;;;;;;;;;;;;:::i;:::-;8124:40;;8179:9;8174:1909;8198:4;:11;8194:1;:15;8174:1909;;;8231:18;8251:20;8276:4;8281:1;8276:7;;;;;;;;:::i;:::-;;;;;;;8284:1;8276:10;;;;;;;:::i;:::-;;;;;8288:4;8293:1;8288:7;;;;;;;;:::i;:::-;;;;;;;8296:1;8288:10;;;;;;;:::i;:::-;;;;;8230:69;;;;8356:22;8364:4;8356:22;;;;;;;;;;;;;-1:-1:-1;;;8356:22:5;;;:7;;;:22;;:::i;:::-;8352:1683;;;8380:22;:31;8405:6;8380:22;:31;:::i;:::-;;8352:1683;;;8434:24;8442:4;8434:24;;;;;;;;;;;;;-1:-1:-1;;;8434:24:5;;;:7;;;:24;;:::i;:::-;8430:1605;;;8460:24;:33;8487:6;8460:24;:33;:::i;8430:1605::-;8516:24;8524:4;8516:24;;;;;;;;;;;;;-1:-1:-1;;;8516:24:5;;;:7;;;:24;;:::i;:::-;8512:1523;;;8542:24;:33;8569:6;8542:24;:33;:::i;8512:1523::-;8598:23;8606:4;8598:23;;;;;;;;;;;;;-1:-1:-1;;;8598:23:5;;;:7;;;:23;;:::i;:::-;8594:1441;;;8623:23;:32;8649:6;8623:23;:32;:::i;8594:1441::-;8678:24;8686:4;8678:24;;;;;;;;;;;;;-1:-1:-1;;;8678:24:5;;;:7;;;:24;;:::i;:::-;8674:1361;;;8704:24;:33;8731:6;8704:24;:33;:::i;8674:1361::-;8760:25;8768:4;8760:25;;;;;;;;;;;;;-1:-1:-1;;;8760:25:5;;;:7;;;:25;;:::i;:::-;8756:1279;;;8787:25;:34;8815:6;8787:25;:34;:::i;8756:1279::-;8844:51;8852:4;8844:51;;;;;;;;;;;;;-1:-1:-1;;;8844:51:5;;;;;;;;;;;;;;;;-1:-1:-1;;;8844:51:5;;;:7;;;:51;;:::i;:::-;8840:1195;;;8897:31;:40;8931:6;8897:31;:40;:::i;8840:1195::-;8960:45;8968:4;8960:45;;;;;;;;;;;;;-1:-1:-1;;;8960:45:5;;;;;;;;;;;;;;;;-1:-1:-1;;;8960:45:5;;;:7;;;:45;;:::i;:::-;8956:1079;;;9007:28;:37;9038:6;9007:28;:37;:::i;8956:1079::-;9067:59;9075:4;9067:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;;;:59;;:::i;:::-;9063:972;;;9128:34;:43;9165:6;9128:34;:43;:::i;9063:972::-;9194:47;9202:4;9194:47;;;;;;;;;;;;;-1:-1:-1;;;9194:47:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9194:47:5;;;:7;;;:47;;:::i;:::-;9190:845;;;9243:29;:38;9275:6;9243:29;:38;:::i;9190:845::-;9304:24;9312:4;9304:24;;;;;;;;;;;;;-1:-1:-1;;;9304:24:5;;;:7;;;:24;;:::i;:::-;9300:735;;;9330:24;:33;9357:6;9330:24;:33;:::i;9300:735::-;9386:49;9394:4;9386:49;;;;;;;;;;;;;-1:-1:-1;;;9386:49:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9386:49:5;;;:7;;;:49;;:::i;:::-;9382:653;;;9437:30;:39;9470:6;9437:30;:39;:::i;9382:653::-;9499:26;9507:4;9499:26;;;;;;;;;;;;;-1:-1:-1;;;9499:26:5;;;:7;;;:26;;:::i;:::-;9495:540;;;9527:26;:35;9556:6;9527:26;:35;:::i;9495:540::-;9585:49;9593:4;9585:49;;;;;;;;;;;;;-1:-1:-1;;;9585:49:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9585:49:5;;;:7;;;:49;;:::i;:::-;9581:454;;;9636:30;:39;9669:6;9636:30;:39;:::i;9581:454::-;9698:51;9706:4;9698:51;;;;;;;;;;;;;-1:-1:-1;;;9698:51:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9698:51:5;;;:7;;;:51;;:::i;:::-;9694:341;;;9751:30;:39;9784:6;9751:30;:39;:::i;9694:341::-;9813:67;9821:4;9813:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;;;:67;;:::i;:::-;9809:226;;;9882:37;:46;9922:6;9882:37;:46;:::i;9809:226::-;9951:45;9959:4;9951:45;;;;;;;;;;;;;-1:-1:-1;;;9951:45:5;;;;;;;;;;;;;;;;-1:-1:-1;;;9951:45:5;;;:7;;;:45;;:::i;:::-;9947:88;;;9998:28;:37;10029:6;9998:28;:37;:::i;:::-;;9947:88;8216:1867;;8211:3;;;;;:::i;:::-;;;;8174:1909;;;;10099:1;10092:8;;;6228:3879;:::o;10113:155::-;10186:4;10258:1;10247:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10237:24;;;;;;10230:1;10219:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10209:24;;;;;;:52;10202:59;;10113:155;;;;:::o;10274:240::-;10364:4;10448:1;10437:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10427:24;;;;;;10420:1;10409:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10399:24;;;;;;:52;:108;;;;10504:1;10493:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10483:24;;;;;;10476:1;10465:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;10455:24;;;;;;:52;10399:108;10380:127;10274:240;-1:-1:-1;;;;10274:240:5:o;14:127:30:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:30;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:30;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:30;;;2580:26;2531:89;-1:-1:-1;;1335:1:30;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:30;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:30;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:30;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:30:o;2735:251::-;2807:2;2801:9;;;2837:15;;-1:-1:-1;;;;;2867:34:30;;2903:22;;;2864:62;2861:88;;;2929:18;;:::i;:::-;2965:2;2958:22;2735:251;:::o;2991:275::-;3062:2;3056:9;3127:2;3108:13;;-1:-1:-1;;3104:27:30;3092:40;;-1:-1:-1;;;;;3147:34:30;;3183:22;;;3144:62;3141:88;;;3209:18;;:::i;:::-;3245:2;3238:22;2991:275;;-1:-1:-1;2991:275:30:o;3271:250::-;3356:1;3366:113;3380:6;3377:1;3374:13;3366:113;;;3456:11;;;3450:18;3437:11;;;3430:39;3402:2;3395:10;3366:113;;;-1:-1:-1;;3513:1:30;3495:16;;3488:27;3271:250::o;3526:2078::-;3654:6;3707:2;3695:9;3686:7;3682:23;3678:32;3675:52;;;3723:1;3720;3713:12;3675:52;3750:16;;-1:-1:-1;;;;;3815:14:30;;;3812:34;;;3842:1;3839;3832:12;3812:34;3880:6;3869:9;3865:22;3855:32;;3925:7;3918:4;3914:2;3910:13;3906:27;3896:55;;3947:1;3944;3937:12;3896:55;3976:2;3970:9;3998:2;3994;3991:10;3988:36;;;4004:18;;:::i;:::-;4044:36;4076:2;4071;4068:1;4064:10;4060:19;4044:36;:::i;:::-;4102:3;4126:2;4121:3;4114:15;4154:2;4149:3;4145:12;4138:19;;4205:2;4199;4196:1;4192:10;4188:2;4184:19;4180:28;4166:42;;4231:7;4223:6;4220:19;4217:39;;;4252:1;4249;4242:12;4217:39;4284:2;4280;4276:11;4296:1278;4312:6;4307:3;4304:15;4296:1278;;;4391:3;4385:10;4427:2;4414:11;4411:19;4408:39;;;4443:1;4440;4433:12;4408:39;4470:20;;4525:2;4517:11;;4513:25;-1:-1:-1;4503:53:30;;4552:1;4549;4542:12;4503:53;4582:22;;:::i;:::-;4630:5;4667:7;4662:2;4658;4654:11;4651:24;4648:44;;;4688:1;4685;4678:12;4648:44;4726:2;4722;4718:11;4742:759;4768:2;4764;4760:11;4753:5;4750:22;4742:759;;;4858:5;4852:12;4902:2;4887:13;4884:21;4881:41;;;4918:1;4915;4908:12;4881:41;4949:22;;5010:2;5002:11;;4998:25;-1:-1:-1;4988:53:30;;5037:1;5034;5027:12;4988:53;5082:2;5078;5074:11;5068:18;5113:2;5109;5106:10;5103:36;;;5119:18;;:::i;:::-;5169:53;5212:2;5193:13;;-1:-1:-1;;5189:27:30;5218:2;5185:36;5169:53;:::i;:::-;5253:2;5246:5;5239:17;5301:7;5296:2;5291;5287;5283:11;5279:20;5276:33;5273:53;;;5322:1;5319;5312:12;5273:53;5343:67;5407:2;5402;5395:5;5391:14;5386:2;5382;5378:11;5343:67;:::i;:::-;5427:20;;-1:-1:-1;;5484:2:30;5473:14;;;;4784;4742:759;;;-1:-1:-1;5514:18:30;;-1:-1:-1;;5561:2:30;5552:12;;;;4329;4296:1278;;;-1:-1:-1;5593:5:30;3526:2078;-1:-1:-1;;;;;;;3526:2078:30:o;5609:127::-;5670:10;5665:3;5661:20;5658:1;5651:31;5701:4;5698:1;5691:15;5725:4;5722:1;5715:15;5741:232;5780:3;5801:17;;;5798:140;;5860:10;5855:3;5851:20;5848:1;5841:31;5895:4;5892:1;5885:15;5923:4;5920:1;5913:15;5798:140;-1:-1:-1;5965:1:30;5954:13;;5741:232::o;5978:396::-;6127:2;6116:9;6109:21;6090:4;6159:6;6153:13;6202:6;6197:2;6186:9;6182:18;6175:34;6218:79;6290:6;6285:2;6274:9;6270:18;6265:2;6257:6;6253:15;6218:79;:::i;:::-;6358:2;6337:15;-1:-1:-1;;6333:29:30;6318:45;;;;6365:2;6314:54;;5978:396;-1:-1:-1;;5978:396:30:o;:::-;179:14833:27;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x60806040523480156200001157600080fd5b5060043610620001695760003560e01c8063523a6ee811620000d3578063ba414fa61162000086578063ba414fa61462000237578063bff886511462000252578063e608f5bf146200025c578063e63bdc2c1462000266578063fa7626d41462000270578063fdb5d2db146200027e57600080fd5b8063523a6ee814620001fb57806369ded12214620002055780637b5340cd146200020f5780637d28054b14620002195780638d61b56e1462000223578063ac6a4242146200022d57600080fd5b8063281fef2f116200012c578063281fef2f14620001bf5780632f64752714620001c95780633a1143da14620001d35780633a1a859414620001dd5780634c50463214620001e757806351e7974814620001f157600080fd5b80630a9254e4146200016e5780630afd5562146200017a5780630bb3f8f114620001a15780630d930ecd14620001ab5780631fc168ee14620001b5575b600080fd5b6200017862000288565b005b62000184620006b8565b6040516001600160a01b0390911681526020015b60405180910390f35b62000178620008f2565b6200017862000b85565b6200017862000dba565b620001786200116d565b62000178620013fb565b62000178620016b6565b620001786200194a565b6200017862001a96565b6200017862001cba565b6200017862001f2a565b62000178620020d5565b6200018462002420565b620001786200269e565b620001786200284e565b62000178620029af565b6200024162002c08565b604051901515815260200162000198565b6200017862002d35565b6200017862002ec3565b6200017862002ffc565b600754620002419060ff1681565b62000178620035a5565b604354604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600b60448201526a1c185c9d1a58da5c185b9d60aa1b60648201526000805160206200672b8339815191529063c657c71890608401600060405180830381600087803b158015620002fe57600080fd5b505af115801562000313573d6000803e3d6000fd5b505060448054604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600c918101919091526b3830b93a34b1b4b830b73a1960a11b60648201526000805160206200672b833981519152925063c657c7189150608401600060405180830381600087803b1580156200039157600080fd5b505af1158015620003a6573d6000803e3d6000fd5b5050604554604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600760448201526639b837b739b7b960c91b60648201526000805160206200672b833981519152925063c657c7189150608401600060405180830381600087803b1580156200041c57600080fd5b505af115801562000431573d6000803e3d6000fd5b5050604654604080516318caf8e360e31b81526001600160a01b0390921660048301526024820152600a60448201526939bab832b93b34b9b7b960b11b60648201526000805160206200672b833981519152925063c657c7189150608401600060405180830381600087803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505060435460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d6310000060248201526000805160206200672b833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200052757600080fd5b505af11580156200053c573d6000803e3d6000fd5b50506044805460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d6310000060248201526000805160206200672b833981519152935063c88a5e6d925001600060405180830381600087803b158015620005a357600080fd5b505af1158015620005b8573d6000803e3d6000fd5b505060455460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d6310000060248201526000805160206200672b833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200062057600080fd5b505af115801562000635573d6000803e3d6000fd5b505060465460405163c88a5e6d60e01b81526001600160a01b03909116600482015268056bc75e2d6310000060248201526000805160206200672b833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200069d57600080fd5b505af1158015620006b2573d6000803e3d6000fd5b50505050565b60408051600180825281830190925260009182919060208083019080368337505060465482519293506001600160a01b03169183915060009062000700576200070062003bb5565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090507f69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d2360601c8160008151811062000777576200077762003bb5565b6001600160a01b0392909216602092830291909101820152604080516002808252606082018352600093919290918301908036833701905050905066b1a2bc2ec5000081600081518110620007d057620007d062003bb5565b6020026020010181815250506706f05b59d3b2000081600181518110620007fb57620007fb62003bb5565b602090810291909101810191909152604080516101c08101825285815281516000808252818501845282850191909152818301869052825181815280850184526060830152608082018590526212750060a0830152606460c083015260e0820181905261010082018190526001610120830181905262989680610140840181905261016084018390526101808401819052845195860185528286526101a08401959095529251849384939291839085908490620008b89062003b91565b620008c7949392919062003db3565b604051809103906000f080158015620008e4573d6000803e3d6000fd5b509998505050505050505050565b6000620008fe62002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200095657600080fd5b505af11580156200096b573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620009b257600080fd5b505af1158015620009c7573d6000803e3d6000fd5b505060465460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b833981519152935063ca669fa792506024019050600060405180830381600087803b15801562000a2257600080fd5b505af115801562000a37573d6000803e3d6000fd5b50600092506001915062000a489050565b60405190808252806020026020018201604052801562000a72578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062000a995762000a9962003bb5565b6001600160a01b03928316602091820292909201015260405163b468aca760e01b81529083169063b468aca79062000ad690849060040162003def565b600060405180830381600087803b15801562000af157600080fd5b505af115801562000b06573d6000803e3d6000fd5b50505050816001600160a01b0316631f7180dd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b49573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b6f919062003e3e565b60011462000b815762000b8162003e58565b5050565b600062000b9162002420565b6045546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b15801562000be957600080fd5b505af115801562000bfe573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000c4557600080fd5b505af115801562000c5a573d6000803e3d6000fd5b5050505050806001600160a01b031663aa546a9e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c9e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cc4919062003e3e565b66b1a2bc2ec500001462000cdc5762000cdc62003e58565b806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000d1f57600080fd5b505af115801562000d34573d6000803e3d6000fd5b5050505050806001600160a01b031663aa546a9e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000d78573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d9e919062003e3e565b67016345785d8a00001462000db75762000db762003e58565b50565b60408051600180825281830190925260009160208083019080368337505060435482519293506001600160a01b03169183915060009062000dff5762000dff62003bb5565b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905066b1a2bc2ec500008160008151811062000e5a5762000e5a62003bb5565b6020908102919091018101919091526040805160006101c082018181526101e08301845282528184018690528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152855160c0830152600160e0830181905261010083018290526101208301819052610140830182905261016083018290526101808301829052835194850184528185526101a0830194909452915190929083908390819062000f149062003b91565b62000f23949392919062003db3565b604051809103906000f08015801562000f40573d6000803e3d6000fd5b5060435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b15801562000f9957600080fd5b505af115801562000fae573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000ff557600080fd5b505af11580156200100a573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200106557600080fd5b505af11580156200107a573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316631939666560e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb39350620010d6920162003e6e565b600060405180830381600087803b158015620010f157600080fd5b505af115801562001106573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200114d57600080fd5b505af115801562001162573d6000803e3d6000fd5b505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec5000081600081518110620011ad57620011ad62003bb5565b6020908102919091018101919091526040805160006101c082018181526101e083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a083015260c0820181905260e08201819052610100820181905260016101208301819052610140830182905261016083018290526101808301829052835194850184528185526101a083019490945291519092908390839081906200126f9062003b91565b6200127e949392919062003db3565b604051809103906000f0801580156200129b573d6000803e3d6000fd5b506043546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b158015620012f457600080fd5b505af115801562001309573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316631e74b6b760e11b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062001365920162003e6e565b600060405180830381600087803b1580156200138057600080fd5b505af115801562001395573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620013dc57600080fd5b505af1158015620013f1573d6000803e3d6000fd5b5050505050505050565b60006200140762002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200145f57600080fd5b505af115801562001474573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620014bb57600080fd5b505af1158015620014d0573d6000803e3d6000fd5b506000935060019250620014e2915050565b6040519080825280602002602001820160405280156200150c578160200160208202803683370190505b5090507fffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac6860601c8160008151811062001549576200154962003bb5565b6001600160a01b0392831660209182029290920101526046546040516303223eab60e11b8152911660048201526000805160206200672b833981519152906306447d5690602401600060405180830381600087803b158015620015ab57600080fd5b505af1158015620015c0573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166379c6621560e01b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb393506200161c920162003e6e565b600060405180830381600087803b1580156200163757600080fd5b505af11580156200164c573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca791506200167e90849060040162003def565b600060405180830381600087803b1580156200169957600080fd5b505af1158015620016ae573d6000803e3d6000fd5b505050505050565b6000620016c262002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200171a57600080fd5b505af11580156200172f573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200177657600080fd5b505af11580156200178b573d6000803e3d6000fd5b5050505050806001600160a01b031663362f04c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017f5919062003e3e565b60011462001807576200180762003e58565b60445460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200185c57600080fd5b505af115801562001871573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f16706f05b59d3b200006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620018b957600080fd5b505af1158015620018ce573d6000803e3d6000fd5b5050505050806001600160a01b031663362f04c06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001912573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001938919062003e3e565b60021462000db75762000db762003e58565b60006200195662002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b158015620019ae57600080fd5b505af1158015620019c3573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062001a1f920162003e6e565b600060405180830381600087803b15801562001a3a57600080fd5b505af115801562001a4f573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f1668e1bc9bf0400006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200169957600080fd5b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec500008160008151811062001ad65762001ad662003bb5565b6020908102919091018101919091526040805160006101c082018181526101e083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152606460c083015260e0820181905261010082018190526001610120830152610140820181905261016082018190526101808201819052825193840183528084526101a0820193909352604354825163ca669fa760e01b81526001600160a01b039091166004820152915190926000805160206200672b8339815191529263ca669fa7926024808301939282900301818387803b15801562001bd757600080fd5b505af115801562001bec573d6000803e3d6000fd5b50505050600066b1a2bc2ec5000060018360008060405162001c0e9062003b91565b62001c1d949392919062003db3565b6040518091039082f090508015801562001c3b573d6000803e3d6000fd5b509050806001600160a01b031663362f04c06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001c7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ca3919062003e3e565b60011462001cb55762001cb562003e58565b505050565b600062001cc662002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b15801562001d1e57600080fd5b505af115801562001d33573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562001d7a57600080fd5b505af115801562001d8f573d6000803e3d6000fd5b50506040516372eb5f8160e11b81526213c68060048201526000805160206200672b833981519152935063e5d6bf0292506024019050600060405180830381600087803b15801562001de057600080fd5b505af115801562001df5573d6000803e3d6000fd5b50600092506001915062001e069050565b60405190808252806020026020018201604052801562001e30578160200160208202803683370190505b5060435481519192506001600160a01b031690829060009062001e575762001e5762003bb5565b6001600160a01b0392831660209182029290920101526046546040516303223eab60e11b8152911660048201526000805160206200672b833981519152906306447d5690602401600060405180830381600087803b15801562001eb957600080fd5b505af115801562001ece573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb393506200161c920162003e6e565b600062001f3662002420565b6043546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b15801562001f8e57600080fd5b505af115801562001fa3573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562001fea57600080fd5b505af115801562001fff573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316635fdadce760e01b179052915163f28dceb360e01b81526000805160206200672b833981519152955063f28dceb394506200205e935090910162003e6e565b600060405180830381600087803b1580156200207957600080fd5b505af11580156200208e573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200169957600080fd5b6040805160018082528183019092526000916020808301908036833701905050905066b1a2bc2ec500008160008151811062002115576200211562003bb5565b6020908102919091018101919091526040805160006101c082018181526101e0830184528252825181815280850184528285015282518181528085018452828401528251818152938401909252909160608201908152602081018490526212750060408201526064606082015260006080820181905260a0820152600160c0820181905260475460e090920191620021ad9162003e8a565b8152600060208083018290526040808401839052805180830182529283526060909301919091528151600480825260248201845291810180516001600160e01b03166352265f9760e11b179052915163f28dceb360e01b81529293506000805160206200672b8339815191529263f28dceb3926200222e9290910162003e6e565b600060405180830381600087803b1580156200224957600080fd5b505af11580156200225e573d6000803e3d6000fd5b50505050600181600080604051620022769062003b91565b62002285949392919062003db3565b604051809103906000f080158015620022a2573d6000803e3d6000fd5b50506040805160006101c082018181526101e0830184528252825181815260208082018552808401919091528351828152808201855283850152835182815280820185526060840152608083018690526212750060a0840152606460c084015260e0830182905261010083018290526001610120840152610140830182905261016083018290526101808301829052835180820185529182526101a08301919091528251600480825260248201855291810180516001600160e01b03166352265f9760e11b179052925163f28dceb360e01b81529193506000805160206200672b8339815191529263f28dceb3926200239c920162003e6e565b600060405180830381600087803b158015620023b757600080fd5b505af1158015620023cc573d6000803e3d6000fd5b505050506001816047546001620023e4919062003e8a565b6000604051620023f49062003b91565b62002403949392919062003db3565b604051809103906000f080158015620006b2573d6000803e3d6000fd5b60408051600180825281830190925260009182919060208083019080368337505060465482519293506001600160a01b03169183915060009062002468576200246862003bb5565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090507f69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d2360601c81600081518110620024df57620024df62003bb5565b6001600160a01b0392909216602092830291909101820152604080516002808252606082018352600093919290918301908036833701905050905066b1a2bc2ec500008160008151811062002538576200253862003bb5565b6020026020010181815250506706f05b59d3b200008160018151811062002563576200256362003bb5565b6020026020010181815250506000604051806101c00160405280858152602001600067ffffffffffffffff811115620025a057620025a062003b9f565b604051908082528060200260200182016040528015620025ca578160200160208202803683370190505b5081526020808201869052604080516000808252928101825292019190508152602001838152602001621275008152602001606481526020016000151581526020016000151581526020016001151581526020016000815260200160006001600160a01b03168152602001600081526020016040518060200160405280600081525081525090506000600182600080604051620026679062003b91565b62002676949392919062003db3565b604051809103906000f08015801562002693573d6000803e3d6000fd5b509695505050505050565b6000620026aa62002420565b6040516372eb5f8160e11b81526213c68060048201529091506000805160206200672b8339815191529063e5d6bf0290602401600060405180830381600087803b158015620026f857600080fd5b505af11580156200270d573d6000803e3d6000fd5b50506045546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200672b83398151915292506306447d569150602401600060405180830381600087803b1580156200276657600080fd5b505af11580156200277b573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb39350620027d7920162003e6e565b600060405180830381600087803b158015620027f257600080fd5b505af115801562002807573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200169957600080fd5b60006200285a62002420565b6046546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b158015620028b257600080fd5b505af1158015620028c7573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b031663066a900960e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062002923920162003e6e565b600060405180830381600087803b1580156200293e57600080fd5b505af115801562002953573d6000803e3d6000fd5b50505050806001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200299357600080fd5b505af1158015620029a8573d6000803e3d6000fd5b5050505050565b6000620029bb62002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b15801562002a1357600080fd5b505af115801562002a28573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b15801562002a6f57600080fd5b505af115801562002a84573d6000803e3d6000fd5b506000935083925062002a95915050565b60405190808252806020026020018201604052801562002abf578160200160208202803683370190505b506046546040516303223eab60e11b81526001600160a01b0390911660048201529091506000805160206200672b833981519152906306447d5690602401600060405180830381600087803b15801562002b1857600080fd5b505af115801562002b2d573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca7915062002b5f90849060040162003def565b600060405180830381600087803b15801562002b7a57600080fd5b505af115801562002b8f573d6000803e3d6000fd5b50505050816001600160a01b0316631f7180dd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002bd2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002bf8919062003e3e565b1562000b815762000b8162003e58565b600754600090610100900460ff161562002c2b5750600754610100900460ff1690565b60006000805160206200672b8339815191523b1562002d3057604080516000805160206200672b833981519152602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162002cb2917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49160800162003eb2565b60408051601f198184030181529082905262002cce9162003ee5565b6000604051808303816000865af19150503d806000811462002d0d576040519150601f19603f3d011682016040523d82523d6000602084013e62002d12565b606091505b509150508080602001905181019062002d2c919062003f03565b9150505b919050565b600062002d4162002420565b6040516372eb5f8160e11b81526213c68060048201529091506000805160206200672b8339815191529063e5d6bf0290602401600060405180830381600087803b15801562002d8f57600080fd5b505af115801562002da4573d6000803e3d6000fd5b50506043546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200672b83398151915292506306447d569150602401600060405180830381600087803b15801562002dfd57600080fd5b505af115801562002e12573d6000803e3d6000fd5b50505050806001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002e5257600080fd5b505af115801562002e67573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166376e5413b60e11b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062002923920162003e6e565b600062002ecf62002420565b6040516372eb5f8160e11b81526213c68060048201529091506000805160206200672b8339815191529063e5d6bf0290602401600060405180830381600087803b15801562002f1d57600080fd5b505af115801562002f32573d6000803e3d6000fd5b50506043546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200672b83398151915292506306447d569150602401600060405180830381600087803b15801562002f8b57600080fd5b505af115801562002fa0573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b03166362ca2fcd60e01b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb393506200205e920162003e6e565b60006200300862002420565b60435460405163ca669fa760e01b81526001600160a01b0390911660048201529091506000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200306057600080fd5b505af115801562003075573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b158015620030bc57600080fd5b505af1158015620030d1573d6000803e3d6000fd5b505060445460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b833981519152935063ca669fa792506024019050600060405180830381600087803b1580156200312c57600080fd5b505af115801562003141573d6000803e3d6000fd5b50505050806001600160a01b0316633a4b66f166b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200318857600080fd5b505af11580156200319d573d6000803e3d6000fd5b505060455460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b833981519152935063ca669fa792506024019050600060405180830381600087803b158015620031f857600080fd5b505af11580156200320d573d6000803e3d6000fd5b50505050806001600160a01b03166377c9366266b1a2bc2ec500006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200325457600080fd5b505af115801562003269573d6000803e3d6000fd5b5050505050620032c2816001600160a01b031631670214e8348c4f00006040518060400160405280601981526020017f62616c616e6365206973206e6f7420302e3135206574686572000000000000008152506200391c565b60408051600180825281830190925260009160208083019080368337505060435482519293506001600160a01b03169183915060009062003307576200330762003bb5565b6001600160a01b03928316602091820292909201015260465460405163ca669fa760e01b8152911660048201526000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200336957600080fd5b505af11580156200337e573d6000803e3d6000fd5b505060405163b468aca760e01b81526001600160a01b038516925063b468aca79150620033b090849060040162003def565b600060405180830381600087803b158015620033cb57600080fd5b505af1158015620033e0573d6000803e3d6000fd5b5050505062003438826001600160a01b03163167016345785d8a00006040518060400160405280601881526020017f62616c616e6365206973206e6f7420302e3120657468657200000000000000008152506200391c565b6040516372eb5f8160e11b81526213c68060048201526000805160206200672b8339815191529063e5d6bf0290602401600060405180830381600087803b1580156200348357600080fd5b505af115801562003498573d6000803e3d6000fd5b50506046546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206200672b83398151915292506306447d569150602401600060405180830381600087803b158015620034f157600080fd5b505af115801562003506573d6000803e3d6000fd5b50505050816001600160a01b031663db231a4f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200354657600080fd5b505af11580156200355b573d6000803e3d6000fd5b5050505062000b81826001600160a01b0316316000604051806040016040528060168152602001753130b630b731b29034b9903737ba10181032ba3432b960511b8152506200391c565b6040805160018082528183019092526000916020808301908036833701905050905067016345785d8a000081600081518110620035e657620035e662003bb5565b6020908102919091018101919091526040805160006101c082018181526101e083018452825282518181528085018452828501528251818152808501845282840152825181815280850184526060830152608082018590526212750060a0830152606460c083015260e0820181905261010082018190526001610120830152610140820181905261016082018190526101808201819052825193840183528084526101a0820193909352604354825163ca669fa760e01b81526001600160a01b039091166004820152915190926000805160206200672b8339815191529263ca669fa7926024808301939282900301818387803b158015620036e757600080fd5b505af1158015620036fc573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb3935062003758920162003e6e565b600060405180830381600087803b1580156200377357600080fd5b505af115801562003788573d6000803e3d6000fd5b505050506706f05b59d3b20000600182600080604051620037a99062003b91565b620037b8949392919062003db3565b6040518091039082f0905080158015620037d6573d6000803e3d6000fd5b505060435460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206200672b8339815191529063ca669fa790602401600060405180830381600087803b1580156200382d57600080fd5b505af115801562003842573d6000803e3d6000fd5b50506040805160048082526024820183526020820180516001600160e01b0316630be5378760e21b179052915163f28dceb360e01b81526000805160206200672b833981519152945063f28dceb393506200389e920162003e6e565b600060405180830381600087803b158015620038b957600080fd5b505af1158015620038ce573d6000803e3d6000fd5b50505050670214e8348c4f0000600182600080604051620038ef9062003b91565b620038fe949392919062003db3565b6040518091039082f0905080158015620006b2573d6000803e3d6000fd5b81831462001cb5577f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838160405162003955919062003f27565b60405180910390a162001cb5838380821462000b81577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620039d69060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808115e1c1958dd195960b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a8183015269080808081058dd1d585b60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a162000b816000805160206200672b8339815191523b1562003b8057604080516000805160206200672b833981519152602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262003b1b929160200162003eb2565b60408051601f198184030181529082905262003b379162003ee5565b6000604051808303816000865af19150503d806000811462003b76576040519150601f19603f3d011682016040523d82523d6000602084013e62003b7b565b606091505b505050505b6007805461ff001916610100179055565b6127d28062003f5983390190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101562003c065781516001600160a01b03168752958201959082019060010162003bdf565b509495945050505050565b600081518084526020808501945080840160005b8381101562003c065781518752958201959082019060010162003c25565b60005b8381101562003c6057818101518382015260200162003c46565b50506000910152565b6000815180845262003c8381602086016020860162003c43565b601f01601f19169290920160200192915050565b60006101c0825181855262003caf8286018262003bcb565b9150506020830151848203602086015262003ccb828262003bcb565b9150506040830151848203604086015262003ce7828262003bcb565b9150506060830151848203606086015262003d03828262003bcb565b9150506080830151848203608086015262003d1f828262003c11565b91505060a083015160a085015260c083015160c085015260e083015162003d4a60e086018215159052565b5061010083810151151590850152610120808401511515908501526101408084015190850152610160808401516001600160a01b03169085015261018080840151908501526101a0808401518583038287015262003da9838262003c69565b9695505050505050565b84815260806020820152600062003dce608083018662003c97565b6040830194909452506001600160a01b039190911660609091015292915050565b6020808252825182820181905260009190848201906040850190845b8181101562003e325783516001600160a01b03168352928401929184019160010162003e0b565b50909695505050505050565b60006020828403121562003e5157600080fd5b5051919050565b634e487b7160e01b600052600160045260246000fd5b60208152600062003e83602083018462003c69565b9392505050565b8082018082111562003eac57634e487b7160e01b600052601160045260246000fd5b92915050565b6001600160e01b031983168152815160009062003ed781600485016020870162003c43565b919091016004019392505050565b6000825162003ef981846020870162003c43565b9190910192915050565b60006020828403121562003f1657600080fd5b8151801515811462003e8357600080fd5b60408152600560408201526422b93937b960d91b606082015260806020820152600062003e83608083018462003c6956fe6080604052633b9aca00600055604051620027d2380380620027d28339810160408190526200002e9162000a59565b60005461018084015161014085015162000049908562000c4b565b62000055919062000c4b565b111562000075576040516352265f9760e11b815260040160405180910390fd5b600184905560005b835151811015620000ee5760016003600086600001518481518110620000a757620000a762000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000e58162000c7d565b9150506200007d565b5060005b836060015151811015620001c457600160046000866060015184815181106200011f576200011f62000c67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000866060015184815181106200017d576200017d62000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620001bb8162000c7d565b915050620000f2565b508260e0015115620002495760005b83602001515181101562000247576001600260008660200151848151811062000200576200020062000c67565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200023e8162000c7d565b915050620001d3565b505b60005b836080015151811015620002bc576001600560008660800151848151811062000279576200027962000c67565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620002b39062000c7d565b9150506200024c565b5060408301518051620002d891600691602090910190620007a4565b5060a083015160075560c0830151600855610100808401516009805461012087015160e088015162ffff001990921693151590940262ff000019169290921762010000931515939093029290921760ff19169015151790556101a0830151600a9062000345908262000d28565b50825180516200035e91601191602090910190620007a4565b50306000908152600360205260409020805460ff19166001179055610140830151600b55610160830151600c80546001600160a01b039283166001600160a01b031991821617909155610180850151600d55600e849055600f805492841692909116919091179055600754620003d5904262000c4b565b6012556000601381905560148190556015819055601681905560178190556018556019805461ffff1916905534156200041257620004126200041c565b5050505062000e0a565b60095460ff1680156200043f57503360009081526002602052604090205460ff16155b156200045e57604051631939666560e21b815260040160405180910390fd5b600854601354106200048357604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615620004ba57604051635fdadce760e01b815260040160405180910390fd5b601254421115620004de576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff166200050f57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192620005d58362000c7d565b91905055503460166000828254620005ee919062000c4b565b9250508190555060006200061334600e54600054620006c760201b62000af61760201c565b905060006200063334600b54600054620006c760201b62000af61760201c565b905060006200065334600d54600054620006c760201b62000af61760201c565b905060008162000664848662000c4b565b62000670919062000c4b565b9050806018600082825462000686919062000c4b565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b60008080600019858709858702925082811083820303915050806000036200070657838281620006fb57620006fb62000df4565b04925050506200079d565b8381106200073557604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b828054828255906000526020600020908101928215620007fc579160200282015b82811115620007fc57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620007c5565b506200080a9291506200080e565b5090565b5b808211156200080a57600081556001016200080f565b634e487b7160e01b600052604160045260246000fd5b6040516101c081016001600160401b038111828210171562000861576200086162000825565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000892576200089262000825565b604052919050565b60006001600160401b03821115620008b657620008b662000825565b5060051b60200190565b80516001600160a01b0381168114620008d857600080fd5b919050565b600082601f830112620008ef57600080fd5b815160206200090862000902836200089a565b62000867565b82815260059290921b840181019181810190868411156200092857600080fd5b8286015b848110156200094e576200094081620008c0565b83529183019183016200092c565b509695505050505050565b600082601f8301126200096b57600080fd5b815160206200097e62000902836200089a565b82815260059290921b840181019181810190868411156200099e57600080fd5b8286015b848110156200094e5780518352918301918301620009a2565b80518015158114620008d857600080fd5b600082601f830112620009de57600080fd5b81516001600160401b03811115620009fa57620009fa62000825565b602062000a10601f8301601f1916820162000867565b828152858284870101111562000a2557600080fd5b60005b8381101562000a4557858101830151828201840152820162000a28565b506000928101909101919091529392505050565b6000806000806080858703121562000a7057600080fd5b845160208601519094506001600160401b038082111562000a9057600080fd5b908601906101c0828903121562000aa657600080fd5b62000ab06200083b565b82518281111562000ac057600080fd5b62000ace8a828601620008dd565b82525060208301518281111562000ae457600080fd5b62000af28a828601620008dd565b60208301525060408301518281111562000b0b57600080fd5b62000b198a828601620008dd565b60408301525060608301518281111562000b3257600080fd5b62000b408a828601620008dd565b60608301525060808301518281111562000b5957600080fd5b62000b678a82860162000959565b60808301525060a083015160a082015260c083015160c082015262000b8f60e08401620009bb565b60e082015261010062000ba4818501620009bb565b9082015261012062000bb8848201620009bb565b90820152610140838101519082015261016062000bd7818501620008c0565b9082015261018083810151908201526101a0808401518381111562000bfb57600080fd5b62000c098b828701620009cc565b8284015250508095505050506040850151915062000c2a60608601620008c0565b905092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000c615762000c6162000c35565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000c925762000c9262000c35565b5060010190565b600181811c9082168062000cae57607f821691505b60208210810362000ccf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000d2357600081815260208120601f850160051c8101602086101562000cfe5750805b601f850160051c820191505b8181101562000d1f5782815560010162000d0a565b5050505b505050565b81516001600160401b0381111562000d445762000d4462000825565b62000d5c8162000d55845462000c99565b8462000cd5565b602080601f83116001811462000d94576000841562000d7b5750858301515b600019600386901b1c1916600185901b17855562000d1f565b600085815260208120601f198616915b8281101562000dc55788860151825594840194600190910190840162000da4565b508582101562000de45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601260045260246000fd5b6119b88062000e1a6000396000f3fe6080604052600436106101b75760003560e01c80637df7c74f116100ec578063b468aca71161008a578063db231a4f11610064578063db231a4f146104db578063dcfba2ba146104f0578063e548e3e714610510578063f3ac01b91461054057600080fd5b8063b468aca71461046b578063cebf058f1461048b578063d50267ee146104ab57600080fd5b8063922fce95116100c6578063922fce95146104065780639340fd511461042557806394409a561461043f578063aa546a9e1461045557600080fd5b80637df7c74f146103975780638b301e2b146103b65780638f57727d146103d657600080fd5b8063362f04c01161015957806356539f391161013357806356539f391461034e5780635d758d391461036357806360c6d8ae1461037957806377c936621461038f57600080fd5b8063362f04c01461030e5780633a4b66f1146103245780633ccd928a1461032e57600080fd5b8063157135661161019557806315713566146102945780631f7180dd146102be57806324924bf7146102e257806334908c16146102f857600080fd5b806303ee438c146101bc57806309e69ede146101e75780630e6fdaa11461025c575b600080fd5b3480156101c857600080fd5b506101d1610556565b6040516101de91906114ee565b60405180910390f35b3480156101f357600080fd5b50610234610202366004611558565b6002602052600090815260409020805460019091015460ff808316926101008104821692620100009091049091169084565b60408051941515855292151560208501529015159183019190915260608201526080016101de565b34801561026857600080fd5b5061027c610277366004611573565b6105e4565b6040516001600160a01b0390911681526020016101de565b3480156102a057600080fd5b506019546102ae9060ff1681565b60405190151581526020016101de565b3480156102ca57600080fd5b506102d460145481565b6040519081526020016101de565b3480156102ee57600080fd5b506102d460085481565b34801561030457600080fd5b506102d460175481565b34801561031a57600080fd5b506102d460135481565b61032c61060e565b005b34801561033a57600080fd5b5061027c610349366004611573565b610618565b34801561035a57600080fd5b506001546102d4565b34801561036f57600080fd5b506102d460075481565b34801561038557600080fd5b506102d460185481565b61032c610628565b3480156103a357600080fd5b506009546102ae90610100900460ff1681565b3480156103c257600080fd5b5061027c6103d1366004611573565b610699565b3480156103e257600080fd5b506102ae6103f1366004611558565b60046020526000908152604090205460ff1681565b34801561041257600080fd5b506019546102ae90610100900460ff1681565b34801561043157600080fd5b506009546102ae9060ff1681565b34801561044b57600080fd5b506102d460165481565b34801561046157600080fd5b506102d460155481565b34801561047757600080fd5b5061032c610486366004611669565b6106a9565b34801561049757600080fd5b506009546102ae9062010000900460ff1681565b3480156104b757600080fd5b506102ae6104c6366004611573565b60056020526000908152604090205460ff1681565b3480156104e757600080fd5b5061032c61086c565b3480156104fc57600080fd5b5061032c61050b3660046116a6565b61090b565b34801561051c57600080fd5b506102ae61052b366004611558565b60036020526000908152604090205460ff1681565b34801561054c57600080fd5b506102d460125481565b600a8054610563906116f4565b80601f016020809104026020016040519081016040528092919081815260200182805461058f906116f4565b80156105dc5780601f106105b1576101008083540402835291602001916105dc565b820191906000526020600020905b8154815290600101906020018083116105bf57829003601f168201915b505050505081565b601081815481106105f457600080fd5b6000918252602090912001546001600160a01b0316905081565b610616610bcd565b565b601181815481106105f457600080fd5b60125442111561064b576040516362ca2fcd60e01b815260040160405180910390fd5b346015600082825461065d9190611744565b909155505060405134815233907f74194cee4daf68c6858b41efe9729cf57988cee7f447442f39a1e2adafd4e0219060200160405180910390a2565b600681815481106105f457600080fd5b3360009081526003602052604090205460ff166106d9576040516364f5dc8560e01b815260040160405180910390fd5b6012544211156106fc576040516362ca2fcd60e01b815260040160405180910390fd5b60005b81518110156107da576002600083838151811061071e5761071e61175d565b6020908102919091018101516001600160a01b0316825281019190915260400160002054610100900460ff16610767576040516379c6621560e01b815260040160405180910390fd5b6002600083838151811061077d5761077d61175d565b6020908102919091018101516001600160a01b031682528101919091526040016000205462010000900460ff16156107c8576040516379c6621560e01b815260040160405180910390fd5b806107d281611773565b9150506106ff565b5060005b81518110156108215760008282815181106107fb576107fb61175d565b6020026020010151905061080e81610e41565b508061081981611773565b9150506107de565b506019805460ff1916600117905560405133907f440c93edea69d1cf0502a6e259d2bcaf3e0a4f16428ddd3b6f5b68081e27eea3906108619084906117d0565b60405180910390a250565b601254421161088e5760405163066a900960e21b815260040160405180910390fd5b601954610100900460ff16156108b7576040516376e5413b60e11b815260040160405180910390fd5b6108bf610fed565b6108c7611174565b6108cf611323565b6019805461ff00191661010017905560405133907f8e4581edbcde6e54b523f4d359eb0eff7308e8d3e14ff8eac7e7705b4b98a62a90600090a2565b6001600160a01b03821660009081526004602052604090205460ff166109445760405163d67d8ec560e01b815260040160405180910390fd5b60405163091f613f60e11b8152829060009081906001600160a01b0384169063123ec27e906109779087906004016117d0565b600060405180830381865afa158015610994573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109bc91908101906117e3565b9150915060008167ffffffffffffffff8111156109db576109db61158c565b604051908082528060200260200182016040528015610a04578160200160208202803683370190505b5090506000805b8451811015610a9757848181518110610a2657610a2661175d565b602002602001015115610a8557868181518110610a4557610a4561175d565b6020026020010151838381518110610a5f57610a5f61175d565b6001600160a01b039092166020928302919091019091015281610a8181611773565b9250505b80610a8f81611773565b915050610a0b565b5060405163b468aca760e01b8152309063b468aca790610abb9085906004016117d0565b600060405180830381600087803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b5050505050505050505050565b6000808060001985870985870292508281108382030391505080600003610b3057838281610b2657610b2661188b565b0492505050610bc6565b838110610b5e57604051631dcf306360e21b8152600481018290526024810185905260440160405180910390fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60095460ff168015610bef57503360009081526002602052604090205460ff16155b15610c0d57604051631939666560e21b815260040160405180910390fd5b60085460135410610c3157604051631e74b6b760e11b815260040160405180910390fd5b33600090815260026020526040902054610100900460ff1615610c6757604051635fdadce760e01b815260040160405180910390fd5b601254421115610c8a576040516362ca2fcd60e01b815260040160405180910390fd5b3460009081526005602052604090205460ff16610cba57604051630be5378760e21b815260040160405180910390fd5b60408051608081018252600180825260208083018281526000848601818152346060870190815233808452600290955296822086518154945192511515620100000262ff0000199315156101000261ff00199215159290921661ffff1990961695909517179190911692909217825594519083015560108054928301815584527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67290910180546001600160a01b0319169091179055601380549192610d7e83611773565b91905055503460166000828254610d959190611744565b925050819055506000610dad34600e54600054610af6565b90506000610dc034600b54600054610af6565b90506000610dd334600d54600054610af6565b9050600081610de28486611744565b610dec9190611744565b90508060186000828254610e009190611744565b909155505060405134815233907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9060200160405180910390a25050505050565b6001600160a01b03811660009081526002602090815260408083208151608081018352815460ff80821615158352610100820481161515958301959095526201000090049093161515918301919091526001015460608201819052600e548354929392610eaf929190610af6565b90506000610ec68360600151600b54600054610af6565b90506000610edd8460600151600d54600054610af6565b9050600081610eec8486611744565b610ef69190611744565b90506000818660600151610f0a91906118a1565b6040519091506001600160a01b0388169082156108fc029083906000818181858888f19350505050158015610f43573d6000803e3d6000fd5b506001600160a01b0387166000908152600260205260408120805462ff00001916620100001790556014805491610f7983611773565b91905055508060176000828254610f909190611744565b9091555050606080870151604080519182526020820185905281018390526001600160a01b038916917f3c6d034538fc1be4c1c02283083c593ad4546ace8a6713cb5fb2ecb705a41446910160405180910390a250505050505050565b6014541561061657600060145460155461100791906118b4565b9050600060145467ffffffffffffffff8111156110265761102661158c565b60405190808252806020026020018201604052801561104f578160200160208202803683370190505b5090506000805b60135481101561112f576000601082815481106110755761107561175d565b60009182526020808320909101546001600160a01b0316808352600290915260409091205490915060ff62010000909104161561111c576040516001600160a01b0382169086156108fc029087906000818181858888f193505050501580156110e2573d6000803e3d6000fd5b50808484815181106110f6576110f661175d565b6001600160a01b03909216602092830291909101909101528261111881611773565b9350505b508061112781611773565b915050611056565b5060155460405133917f2114d896257ce5a58e1c18ae0d1cb1bd56f2f18c8b5a78e4541b48f40883b5af9161116791869188906118d6565b60405180910390a2505050565b6000611187601654600e54600054610af6565b9050600061119c601654600b54600054610af6565b905060006111b1601654600d54600054610af6565b6011549091506000906111c490836118b4565b9050831561120857600f546040516001600160a01b039091169085156108fc029086906000818181858888f19350505050158015611206573d6000803e3d6000fd5b505b821561124a57600c546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611248573d6000803e3d6000fd5b505b81156112c55760005b6011548110156112c357601181815481106112705761127061175d565b60009182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156112b0573d6000803e3d6000fd5b50806112bb81611773565b915050611253565b505b600f54600c5460405133927ff50e8e029e43d877ce362cea5cb5693fcf553b41d0bc26d03ee286b56964bafb926113159289926001600160a01b03908116928a9291169089906011908a906118fb565b60405180910390a250505050565b600060145460135461133591906118a1565b11156106165760095460609062010000900460ff168015611359575060195460ff16155b156113c05760108054806020026020016040519081016040528092919081815260200182805480156113b457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611396575b5050505050905061141e565b600680548060200260200160405190810160405280929190818152602001828054801561141657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113f8575b505050505090505b601454601354479160009161143391906118a1565b61143d90836118b4565b905060005b83518110156114b05783818151811061145d5761145d61175d565b60200260200101516001600160a01b03166108fc839081150290604051600060405180830381858888f1935050505015801561149d573d6000803e3d6000fd5b50806114a881611773565b915050611442565b50336001600160a01b03167f1a50eba3476dd09ccdbee500a30b43381479c55b92f8ea25850f819ec591a520848484604051611167939291906118d6565b600060208083528351808285015260005b8181101561151b578581018301518582016040015282016114ff565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461155357600080fd5b919050565b60006020828403121561156a57600080fd5b610bc68261153c565b60006020828403121561158557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115cb576115cb61158c565b604052919050565b600067ffffffffffffffff8211156115ed576115ed61158c565b5060051b60200190565b600082601f83011261160857600080fd5b8135602061161d611618836115d3565b6115a2565b82815260059290921b8401810191818101908684111561163c57600080fd5b8286015b8481101561165e576116518161153c565b8352918301918301611640565b509695505050505050565b60006020828403121561167b57600080fd5b813567ffffffffffffffff81111561169257600080fd5b61169e848285016115f7565b949350505050565b600080604083850312156116b957600080fd5b6116c28361153c565b9150602083013567ffffffffffffffff8111156116de57600080fd5b6116ea858286016115f7565b9150509250929050565b600181811c9082168061170857607f821691505b60208210810361172857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156117575761175761172e565b92915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016117855761178561172e565b5060010190565b600081518084526020808501945080840160005b838110156117c55781516001600160a01b0316875295820195908201906001016117a0565b509495945050505050565b602081526000610bc6602083018461178c565b600080604083850312156117f657600080fd5b825167ffffffffffffffff81111561180d57600080fd5b8301601f8101851361181e57600080fd5b8051602061182e611618836115d3565b82815260059290921b8301810191818101908884111561184d57600080fd5b938201935b8385101561187a578451801515811461186b5760008081fd5b82529382019390820190611852565b969091015195979596505050505050565b634e487b7160e01b600052601260045260246000fd5b818103818111156117575761175761172e565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b6060815260006118e9606083018661178c565b60208301949094525060400152919050565b600060e08201898352602060018060a01b03808b1682860152896040860152808916606086015287608086015260e060a0860152828754808552610100870191508860005283600020945060005b81811015611967578554841683526001958601959285019201611949565b5050809450505050508260c08301529897505050505050505056fea26469706673582212209a4c52bf904012786dbf4b13678b4ede180c0089fbc1fbf7a309a4faac35883a64736f6c634300081100330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220ac3575868ff18a50680fdefcb0420f8fd03900621dbaa4458fb22d7786c7701e64736f6c63430008110033",
    "sourceMap": "179:14833:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:376;;;:::i;:::-;;2072:1282;;;:::i;:::-;;;-1:-1:-1;;;;;199:32:30;;;181:51;;169:2;154:18;2072:1282:27;;;;;;;;7617:500;;;:::i;6860:388::-;;;:::i;5389:1102::-;;;:::i;4465:918::-;;;:::i;8708:584::-;;;:::i;3360:380::-;;;:::i;3746:325::-;;;:::i;11836:798::-;;;:::i;8123:579::-;;;:::i;4077:382::-;;;:::i;13669:1341::-;;;:::i;959:1107::-;;;:::i;7254:357::-;;;:::i;10877:402::-;;;:::i;9298:446::-;;;:::i;1819:584:0:-;;;:::i;:::-;;;504:14:30;;497:22;479:41;;467:2;452:18;1819:584:0;339:187:30;11285:545:27;;;:::i;6497:357::-;;;:::i;9750:1121::-;;;:::i;1572:26:0:-;;;;;;;;;12640:1023:27;;;:::i;539:376::-;582:12;;573:37;;;-1:-1:-1;;;573:37:27;;-1:-1:-1;;;;;582:12:27;;;573:37;;;852:51:30;919:18;;;912:30;978:2;958:18;;;951:30;-1:-1:-1;;;997:18:30;;;990:41;-1:-1:-1;;;;;;;;;;;573:8:27;;;1048:19:30;;573:37:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;629:13:27;;;620:39;;;-1:-1:-1;;;620:39:27;;-1:-1:-1;;;;;629:13:27;;;620:39;;;1290:51:30;1357:18;;;1350:30;1416:2;1396:18;;;1389:30;;;;-1:-1:-1;;;1435:18:30;;;1428:42;-1:-1:-1;;;;;;;;;;;620:8:27;-1:-1:-1;620:8:27;;-1:-1:-1;1487:19:30;;620:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;678:8:27;;669:29;;;-1:-1:-1;;;669:29:27;;-1:-1:-1;;;;;678:8:27;;;669:29;;;1729:51:30;1796:18;;;1789:30;1855:1;1835:18;;;1828:29;-1:-1:-1;;;1873:18:30;;;1866:37;-1:-1:-1;;;;;;;;;;;669:8:27;-1:-1:-1;669:8:27;;-1:-1:-1;1920:19:30;;669:29:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;717:11:27;;708:35;;;-1:-1:-1;;;708:35:27;;-1:-1:-1;;;;;717:11:27;;;708:35;;;2162:51:30;2229:18;;;2222:30;2288:2;2268:18;;;2261:30;-1:-1:-1;;;2307:18:30;;;2300:40;-1:-1:-1;;;;;;;;;;;708:8:27;-1:-1:-1;708:8:27;;-1:-1:-1;2357:19:30;;708:35:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;762:12:27;;754:32;;-1:-1:-1;;;754:32:27;;-1:-1:-1;;;;;762:12:27;;;754:32;;;2589:51:30;776:9:27;2656:18:30;;;2649:34;-1:-1:-1;;;;;;;;;;;754:7:27;-1:-1:-1;754:7:27;;-1:-1:-1;2562:18:30;;754:32:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;804:13:27;;;796:33;;-1:-1:-1;;;796:33:27;;-1:-1:-1;;;;;804:13:27;;;796:33;;;2589:51:30;819:9:27;2656:18:30;;;2649:34;-1:-1:-1;;;;;;;;;;;796:7:27;-1:-1:-1;796:7:27;;-1:-1:-1;2562:18:30;796:33:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;847:8:27;;839:28;;-1:-1:-1;;;839:28:27;;-1:-1:-1;;;;;847:8:27;;;839:28;;;2589:51:30;857:9:27;2656:18:30;;;2649:34;-1:-1:-1;;;;;;;;;;;839:7:27;-1:-1:-1;839:7:27;;-1:-1:-1;2562:18:30;;839:28:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;885:11:27;;877:31;;-1:-1:-1;;;877:31:27;;-1:-1:-1;;;;;885:11:27;;;877:31;;;2589:51:30;898:9:27;2656:18:30;;;2649:34;-1:-1:-1;;;;;;;;;;;877:7:27;-1:-1:-1;877:7:27;;-1:-1:-1;2562:18:30;;877:31:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:376::o;2072:1282::-;2211:16;;;2225:1;2211:16;;;;;;;;;2153:11;;;;2211:16;;;;;;;;;;-1:-1:-1;;2254:11:27;;2237:14;;;;-1:-1:-1;;;;;;2254:11:27;;2237:14;;-1:-1:-1;2254:11:27;;2237:14;;;;:::i;:::-;-1:-1:-1;;;;;2237:28:27;;;;:14;;;;;;;;;;;:28;2324:16;;;2338:1;2324:16;;;;;;;;;2276:45;;2324:16;;;;;;;;;;;;-1:-1:-1;2324:16:27;2276:64;;2413:27;2384:67;;2350:28;2379:1;2350:31;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2350:101:27;;;;:31;;;;;;;;;;:101;2494:16;;;2508:1;2494:16;;;;;;;;2462:29;;2494:16;;2508:1;;2494:16;;;;;;;;;-1:-1:-1;2494:16:27;2462:48;;2538:10;2520:12;2533:1;2520:15;;;;;;;;:::i;:::-;;;;;;:28;;;;;2576:9;2558:12;2571:1;2558:15;;;;;;;;:::i;:::-;;;;;;;;;;;:27;;;;2793:369;;;;;;;;;;;2853:16;;-1:-1:-1;2853:16:27;;;;;;;;2793:369;;;;;;;;;;;;;2925:16;;;;;;;;;;2793:369;;;;;;;;;;2981:7;2793:369;;;;3002:3;2793:369;;;;;;;;;;;;;;;;;;;;;;;2638:10;2793:369;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3199:120;;2638:10;;;;2793:369;-1:-1:-1;2793:369:27;;2638:10;;-1:-1:-1;;3199:120:27;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3173:146:27;2072:1282;-1:-1:-1;;;;;;;;;2072:1282:27:o;7617:500::-;7672:23;7698:43;:41;:43::i;:::-;7760:12;;7751:22;;-1:-1:-1;;;7751:22:27;;-1:-1:-1;;;;;7760:12:27;;;7751:22;;;181:51:30;7672:69:27;;-1:-1:-1;;;;;;;;;;;;7751:8:27;;;154:18:30;;7751:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7783:11;-1:-1:-1;;;;;7783:17:27;;7808:10;7783:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7840:11:27;;7831:21;;-1:-1:-1;;;7831:21:27;;-1:-1:-1;;;;;7840:11:27;;;7831:21;;;181:51:30;-1:-1:-1;;;;;;;;;;;7831:8:27;-1:-1:-1;7831:8:27;;-1:-1:-1;154:18:30;;;-1:-1:-1;7831:21:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7862:42:27;;-1:-1:-1;7921:1:27;;-1:-1:-1;7907:16:27;;-1:-1:-1;7907:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7907:16:27;-1:-1:-1;7964:12:27;;7933:28;;7862:61;;-1:-1:-1;;;;;;7964:12:27;;7862:61;;7964:12;;7933:28;;;;:::i;:::-;-1:-1:-1;;;;;7933:43:27;;;:28;;;;;;;;;:43;7986:61;;-1:-1:-1;;;7986:61:27;;:34;;;;;;:61;;8021:25;;7986:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8064:11;-1:-1:-1;;;;;8064:38:27;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8108:1;8064:45;8057:53;;;;:::i;:::-;7662:455;;7617:500::o;6860:388::-;6900:23;6926:43;:41;:43::i;:::-;6993:8;;6979:23;;-1:-1:-1;;;6979:23:27;;-1:-1:-1;;;;;6993:8:27;;;6979:23;;;181:51:30;6900:69:27;;-1:-1:-1;;;;;;;;;;;;6979:13:27;;;154:18:30;;6979:23:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7012:11;-1:-1:-1;;;;;7012:19:27;;7039:10;7012:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7069:11;-1:-1:-1;;;;;7069:36:27;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7111:10;7069:52;7062:60;;;;:::i;:::-;7132:11;-1:-1:-1;;;;;7132:19:27;;7159:10;7132:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7189:11;-1:-1:-1;;;;;7189:36:27;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7231:9;7189:51;7182:59;;;;:::i;:::-;6890:358;6860:388::o;5389:1102::-;5482:16;;;5496:1;5482:16;;;;;;;;;5442:37;;5482:16;;;;;;;;;-1:-1:-1;;5534:12:27;;5508:23;;;;-1:-1:-1;;;;;;5534:12:27;;5508:23;;-1:-1:-1;5534:12:27;;5508:23;;;;:::i;:::-;-1:-1:-1;;;;;5508:38:27;;;;:23;;;;;;;;;;;:38;5589:16;;;5603:1;5589:16;;;;;;;;;5557:29;;5589:16;;;;;;;;;;;;-1:-1:-1;5589:16:27;5557:48;;5633:10;5615:12;5628:1;5615:15;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;5696:368;;;-1:-1:-1;5696:368:27;;;5731:16;;;;;;;;5696:368;;;;;;;;5795:16;;;;;;;;;;5696:368;;;;5825:16;;;;;;;;;;5696:368;;;;;;;;;;5881:7;5696:368;;;;5902:27;;5696:368;;;;5943:4;5696:368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5696:368:27;;;;;;;;;;;;;;;;;;;;6101:103;;5696:368;;5943:4;5696:368;;-1:-1:-1;;;;6101:103:27;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6223:12:27;;6214:22;;-1:-1:-1;;;6214:22:27;;-1:-1:-1;;;;;6223:12:27;;;6214:22;;;181:51:30;6074:130:27;;-1:-1:-1;;;;;;;;;;;;6214:8:27;;;154:18:30;;6214:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6246:12;-1:-1:-1;;;;;6246:18:27;;6272:10;6246:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6304:13:27;;6295:23;;-1:-1:-1;;;6295:23:27;;-1:-1:-1;;;;;6304:13:27;;;6295:23;;;181:51:30;-1:-1:-1;;;;;;;;;;;6295:8:27;-1:-1:-1;6295:8:27;;-1:-1:-1;154:18:30;;;-1:-1:-1;6295:23:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6357:68:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6357:68:27;-1:-1:-1;;;6357:68:27;;;6328:107;;-1:-1:-1;;;6328:107:27;;-1:-1:-1;;;;;;;;;;;6328:15:27;-1:-1:-1;6328:15:27;;-1:-1:-1;6328:107:27;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6445:12;-1:-1:-1;;;;;6445:18:27;;6471:10;6445:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5432:1059;;;;5389:1102::o;4465:918::-;4557:16;;;4571:1;4557:16;;;;;;;;;4525:29;;4557:16;;;;;;;;;;;-1:-1:-1;4557:16:27;4525:48;;4601:10;4583:12;4596:1;4583:15;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;4663:339;;;-1:-1:-1;4663:339:27;;;4698:16;;;;;;;;4663:339;;4728:16;;;;;;;;;;4663:339;;;;4758:16;;;;;;;;;;4663:339;;;;4788:16;;;;;;;;;;4663:339;;;;;;;;;;4844:7;4663:339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4663:339:27;;;;;;;;;;;;;;;;;;;;5039:103;;4663:339;;;;;-1:-1:-1;;;;5039:103:27;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5166:12:27;;5152:27;;-1:-1:-1;;;5152:27:27;;-1:-1:-1;;;;;5166:12:27;;;5152:27;;;181:51:30;5012:130:27;;-1:-1:-1;;;;;;;;;;;;5152:13:27;;;154:18:30;;5152:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5218:99:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5218:99:27;-1:-1:-1;;;5218:99:27;;;5189:138;;-1:-1:-1;;;5189:138:27;;-1:-1:-1;;;;;;;;;;;5189:15:27;-1:-1:-1;5189:15:27;;-1:-1:-1;5189:138:27;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5337:12;-1:-1:-1;;;;;5337:18:27;;5363:10;5337:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4515:868;;;4465:918::o;8708:584::-;8766:23;8792:43;:41;:43::i;:::-;8854:12;;8845:22;;-1:-1:-1;;;8845:22:27;;-1:-1:-1;;;;;8854:12:27;;;8845:22;;;181:51:30;8766:69:27;;-1:-1:-1;;;;;;;;;;;;8845:8:27;;;154:18:30;;8845:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8877:11;-1:-1:-1;;;;;8877:17:27;;8902:10;8877:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8925:42:27;;-1:-1:-1;8984:1:27;;-1:-1:-1;8970:16:27;;-1:-1:-1;;8970:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8970:16:27;;8925:61;;9043:20;9027:38;;8996:25;9022:1;8996:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8996:69:27;;;:28;;;;;;;;;:69;9089:11;;9075:26;;-1:-1:-1;;;9075:26:27;;9089:11;;9075:26;;;181:51:30;-1:-1:-1;;;;;;;;;;;9075:13:27;;;154:18:30;;9075:26:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9140:64:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9140:64:27;-1:-1:-1;;;9140:64:27;;;9111:103;;-1:-1:-1;;;9111:103:27;;-1:-1:-1;;;;;;;;;;;9111:15:27;-1:-1:-1;9111:15:27;;-1:-1:-1;9111:103:27;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9224:61:27;;-1:-1:-1;;;9224:61:27;;-1:-1:-1;;;;;9224:34:27;;;-1:-1:-1;9224:34:27;;-1:-1:-1;9224:61:27;;9259:25;;9224:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8756:536;;8708:584::o;3360:380::-;3398:23;3424:43;:41;:43::i;:::-;3486:12;;3477:22;;-1:-1:-1;;;3477:22:27;;-1:-1:-1;;;;;3486:12:27;;;3477:22;;;181:51:30;3398:69:27;;-1:-1:-1;;;;;;;;;;;;3477:8:27;;;154:18:30;;3477:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3509:11;-1:-1:-1;;;;;3509:17:27;;3534:10;3509:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3564:11;-1:-1:-1;;;;;3564:28:27;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3598:1;3564:35;3557:43;;;;:::i;:::-;3619:13;;3610:23;;-1:-1:-1;;;3610:23:27;;-1:-1:-1;;;;;3619:13:27;;;3610:23;;;181:51:30;-1:-1:-1;;;;;;;;;;;3610:8:27;;;154:18:30;;3610:23:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3643:11;-1:-1:-1;;;;;3643:17:27;;3668:9;3643:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3697:11;-1:-1:-1;;;;;3697:28:27;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3731:1;3697:35;3690:43;;;;:::i;3746:325::-;3799:23;3825:43;:41;:43::i;:::-;3887:12;;3878:22;;-1:-1:-1;;;3878:22:27;;-1:-1:-1;;;;;3887:12:27;;;3878:22;;;181:51:30;3799:69:27;;-1:-1:-1;;;;;;;;;;;;3878:8:27;;;154:18:30;;3878:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3939:67:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3939:67:27;-1:-1:-1;;;3939:67:27;;;3910:106;;-1:-1:-1;;;3910:106:27;;-1:-1:-1;;;;;;;;;;;3910:15:27;-1:-1:-1;3910:15:27;;-1:-1:-1;3910:106:27;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4026:11;-1:-1:-1;;;;;4026:17:27;;4051:10;4026:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11836:798;11921:16;;;11935:1;11921:16;;;;;;;;;11889:29;;11921:16;;;;;;;;;;;-1:-1:-1;11921:16:27;11889:48;;11965:10;11947:12;11960:1;11947:15;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;12034:341;;;-1:-1:-1;12034:341:27;;;12069:16;;;;;;;;12034:341;;12099:16;;;;;;;;;;12034:341;;;;12129:16;;;;;;;;;;12034:341;;;;12159:16;;;;;;;;;;12034:341;;;;;;;;;;12215:7;12034:341;;;;12236:3;12034:341;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12034:341:27;;;;;;;;;;;;;;;;;;;;12394:12;;12385:22;;-1:-1:-1;;;12385:22:27;;-1:-1:-1;;;;;12394:12:27;;;12385:22;;;181:51:30;12385:22:27;;12034:341;;-1:-1:-1;;;;;;;;;;;12385:8:27;;;154:18:30;;;;;-1:-1:-1;12385:22:27;;;;;-1:-1:-1;12385:8:27;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12417:42;12498:10;12519:1;12522:17;12541:1;12552;12462:93;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12417:138;;12572:30;-1:-1:-1;;;;;12572:47:27;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12625:1;12572:54;12565:62;;;;:::i;:::-;11879:755;;;11836:798::o;8123:579::-;8173:23;8199:43;:41;:43::i;:::-;8261:12;;8252:22;;-1:-1:-1;;;8252:22:27;;-1:-1:-1;;;;;8261:12:27;;;8252:22;;;181:51:30;8173:69:27;;-1:-1:-1;;;;;;;;;;;;8252:8:27;;;154:18:30;;8252:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8284:11;-1:-1:-1;;;;;8284:17:27;;8309:10;8284:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8332:16:27;;-1:-1:-1;;;8332:16:27;;8340:7;8332:16;;;9002:25:30;-1:-1:-1;;;;;;;;;;;8332:7:27;-1:-1:-1;8332:7:27;;-1:-1:-1;8975:18:30;;;-1:-1:-1;8332:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8358:42:27;;-1:-1:-1;8417:1:27;;-1:-1:-1;8403:16:27;;-1:-1:-1;8403:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8403:16:27;-1:-1:-1;8460:12:27;;8429:28;;8358:61;;-1:-1:-1;;;;;;8460:12:27;;8358:61;;8460:12;;8429:28;;;;:::i;:::-;-1:-1:-1;;;;;8429:43:27;;;:28;;;;;;;;;:43;8496:11;;8482:26;;-1:-1:-1;;;8482:26:27;;8496:11;;8482:26;;;181:51:30;-1:-1:-1;;;;;;;;;;;8482:13:27;;;154:18:30;;8482:26:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8547:67:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8547:67:27;-1:-1:-1;;;8547:67:27;;;8518:106;;-1:-1:-1;;;8518:106:27;;-1:-1:-1;;;;;;;;;;;8518:15:27;-1:-1:-1;8518:15:27;;-1:-1:-1;8518:106:27;;;;:::i;4077:382::-;4135:23;4161:43;:41;:43::i;:::-;4228:12;;4214:27;;-1:-1:-1;;;4214:27:27;;-1:-1:-1;;;;;4228:12:27;;;4214:27;;;181:51:30;4135:69:27;;-1:-1:-1;;;;;;;;;;;;4214:13:27;;;154:18:30;;4214:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4251:11;-1:-1:-1;;;;;4251:17:27;;4276:10;4251:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4328:66:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4328:66:27;-1:-1:-1;;;4328:66:27;;;4299:105;;-1:-1:-1;;;4299:105:27;;-1:-1:-1;;;;;;;;;;;4299:15:27;-1:-1:-1;4299:15:27;;-1:-1:-1;4299:105:27;;-1:-1:-1;4328:66:27;;4299:105;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4414:11;-1:-1:-1;;;;;4414:17:27;;4439:10;4414:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13669:1341;13757:16;;;13771:1;13757:16;;;;;;;;;13725:29;;13757:16;;;;;;;;;;;-1:-1:-1;13757:16:27;13725:48;;13801:10;13783:12;13796:1;13783:15;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;13863:351;;;-1:-1:-1;13863:351:27;;;13898:16;;;;;;;;13863:351;;13928:16;;;;;;;;;;13863:351;;;;13958:16;;;;;;;;;;13863:351;;;;13988:16;;;;;;;;;;;-1:-1:-1;;13863:351:27;;;;;;;;;;;;14044:7;13863:351;;;;14065:3;13863:351;;;;-1:-1:-1;13863:351:27;;;;;;;;;;;;;;;;;14138:7;;13863:351;;;;;14138:11;;;:::i;:::-;13863:351;;14171:1;13863:351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14254:102;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14254:102:27;-1:-1:-1;;;14254:102:27;;;14225:141;;-1:-1:-1;;;14225:141:27;;13821:393;;-1:-1:-1;;;;;;;;;;;;14225:15:27;;;:141;;14254:102;;14225:141;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14392:1;14395:10;14407:1;14418;14376:45;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14445:341:27;;;-1:-1:-1;14445:341:27;;;14480:16;;;;;;;;14445:341;;14510:16;;;;;14445:341;14510:16;;;;;14445:341;;;;;;;14540:16;;;;;;;;;;14445:341;;;;14570:16;;;;;;;;;;14445:341;;;;;;;;;;14626:7;14445:341;;;;14647:3;14445:341;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14445:341:27;;;;;;;;;;;;;;;;;;;;14826:102;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14826:102:27;-1:-1:-1;;;14826:102:27;;;14797:141;;-1:-1:-1;;;14797:141:27;;14445:341;;-1:-1:-1;;;;;;;;;;;;14797:15:27;;;:141;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14964:1;14967:10;14979:7;;14989:1;14979:11;;;;:::i;:::-;15000:1;14948:55;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;959:1107;1102:16;;;1116:1;1102:16;;;;;;;;;1044:11;;;;1102:16;;;;;;;;;;-1:-1:-1;;1145:11:27;;1128:14;;;;-1:-1:-1;;;;;;1145:11:27;;1128:14;;-1:-1:-1;1145:11:27;;1128:14;;;;:::i;:::-;-1:-1:-1;;;;;1128:28:27;;;;:14;;;;;;;;;;;:28;1215:16;;;1229:1;1215:16;;;;;;;;;1167:45;;1215:16;;;;;;;;;;;;-1:-1:-1;1215:16:27;1167:64;;1304:27;1275:67;;1241:28;1270:1;1241:31;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1241:101:27;;;;:31;;;;;;;;;;:101;1385:16;;;1399:1;1385:16;;;;;;;;1353:29;;1385:16;;1399:1;;1385:16;;;;;;;;;-1:-1:-1;1385:16:27;1353:48;;1429:10;1411:12;1424:1;1411:15;;;;;;;;:::i;:::-;;;;;;:28;;;;;1467:9;1449:12;1462:1;1449:15;;;;;;;;:::i;:::-;;;;;;:27;;;;;1487:46;1536:348;;;;;;;;1571:11;1536:348;;;;1610:1;1596:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1596:16:27;-1:-1:-1;1536:348:27;;;;;;;;;;1668:16;;-1:-1:-1;1668:16:27;;;;;;;;1536:348;;;1668:16;;1536:348;;;;1698:12;1536:348;;;;1724:7;1536:348;;;;1745:3;1536:348;;;;1762:5;1536:348;;;;;;1781:5;1536:348;;;;;;1800:4;1536:348;;;;;;1818:1;1536:348;;;;1841:1;-1:-1:-1;;;;;1536:348:27;;;;;1857:1;1536:348;;;;;;;;;;;;;;;;;;;1487:397;;1895:23;1950:1;1965:17;1996:1;2019;1921:110;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1895:136:27;959:1107;-1:-1:-1;;;;;;959:1107:27:o;7254:357::-;7310:23;7336:43;:41;:43::i;:::-;7389:16;;-1:-1:-1;;;7389:16:27;;7397:7;7389:16;;;9002:25:30;7310:69:27;;-1:-1:-1;;;;;;;;;;;;7389:7:27;;;8975:18:30;;7389:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7429:8:27;;7415:23;;-1:-1:-1;;;7415:23:27;;-1:-1:-1;;;;;7429:8:27;;;7415:23;;;181:51:30;-1:-1:-1;;;;;;;;;;;7415:13:27;-1:-1:-1;7415:13:27;;-1:-1:-1;154:18:30;;7415:23:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7477:67:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7477:67:27;-1:-1:-1;;;7477:67:27;;;7448:106;;-1:-1:-1;;;7448:106:27;;-1:-1:-1;;;;;;;;;;;7448:15:27;-1:-1:-1;7448:15:27;;-1:-1:-1;7448:106:27;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7564:11;-1:-1:-1;;;;;7564:19:27;;7591:10;7564:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10877:402;10961:23;10987:43;:41;:43::i;:::-;11054:11;;11040:26;;-1:-1:-1;;;11040:26:27;;-1:-1:-1;;;;;11054:11:27;;;11040:26;;;181:51:30;10961:69:27;;-1:-1:-1;;;;;;;;;;;;11040:13:27;;;154:18:30;;11040:26:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11105:101:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11105:101:27;-1:-1:-1;;;11105:101:27;;;11076:140;;-1:-1:-1;;;11076:140:27;;-1:-1:-1;;;;;;;;;;;11076:15:27;-1:-1:-1;11076:15:27;;-1:-1:-1;11076:140:27;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11226:11;-1:-1:-1;;;;;11226:44:27;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10951:328;10877:402::o;9298:446::-;9347:23;9373:43;:41;:43::i;:::-;9435:12;;9426:22;;-1:-1:-1;;;9426:22:27;;-1:-1:-1;;;;;9435:12:27;;;9426:22;;;181:51:30;9347:69:27;;-1:-1:-1;;;;;;;;;;;;9426:8:27;;;154:18:30;;9426:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9458:11;-1:-1:-1;;;;;9458:17:27;;9483:10;9458:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9506:42:27;;-1:-1:-1;9506:42:27;;-1:-1:-1;9551:16:27;;-1:-1:-1;;9551:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9551:16:27;-1:-1:-1;9591:11:27;;9577:26;;-1:-1:-1;;;9577:26:27;;-1:-1:-1;;;;;9591:11:27;;;9577:26;;;181:51:30;9506:61:27;;-1:-1:-1;;;;;;;;;;;;9577:13:27;;;154:18:30;;9577:26:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9613:61:27;;-1:-1:-1;;;9613:61:27;;-1:-1:-1;;;;;9613:34:27;;;-1:-1:-1;9613:34:27;;-1:-1:-1;9613:61:27;;9648:25;;9613:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9691:11;-1:-1:-1;;;;;9691:38:27;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;9684:53;;;;:::i;1819:584:0:-;1873:7;;1853:4;;1873:7;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;-1:-1:-1;;;;;;;;;;;2978:55:0;3059:16;1980:374;;2196:43;;;-1:-1:-1;;;;;;;;;;;2196:43:0;;;2589:51:30;;;-1:-1:-1;;;2656:18:30;;;2649:34;2196:43:0;;;;;;;;;2562:18:30;;;2196:43:0;;;-1:-1:-1;;1671:64:0;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:0;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;11285:545:27:-;11363:23;11389:43;:41;:43::i;:::-;11442:16;;-1:-1:-1;;;11442:16:27;;11450:7;11442:16;;;9002:25:30;11363:69:27;;-1:-1:-1;;;;;;;;;;;;11442:7:27;;;8975:18:30;;11442:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11482:12:27;;11468:27;;-1:-1:-1;;;11468:27:27;;-1:-1:-1;;;;;11482:12:27;;;11468:27;;;181:51:30;-1:-1:-1;;;;;;;;;;;11468:13:27;-1:-1:-1;11468:13:27;;-1:-1:-1;154:18:30;;11468:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11505:11;-1:-1:-1;;;;;11505:44:27;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11590:167:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11590:167:27;-1:-1:-1;;;11590:167:27;;;11561:206;;-1:-1:-1;;;11561:206:27;;-1:-1:-1;;;;;;;;;;;11561:15:27;-1:-1:-1;11561:15:27;;-1:-1:-1;11561:206:27;;;;:::i;6497:357::-;6551:23;6577:43;:41;:43::i;:::-;6630:16;;-1:-1:-1;;;6630:16:27;;6638:7;6630:16;;;9002:25:30;6551:69:27;;-1:-1:-1;;;;;;;;;;;;6630:7:27;;;8975:18:30;;6630:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6670:12:27;;6656:27;;-1:-1:-1;;;6656:27:27;;-1:-1:-1;;;;;6670:12:27;;;6656:27;;;181:51:30;-1:-1:-1;;;;;;;;;;;6656:13:27;-1:-1:-1;6656:13:27;;-1:-1:-1;154:18:30;;6656:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6722:67:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6722:67:27;-1:-1:-1;;;6722:67:27;;;6693:106;;-1:-1:-1;;;6693:106:27;;-1:-1:-1;;;;;;;;;;;6693:15:27;-1:-1:-1;6693:15:27;;-1:-1:-1;6693:106:27;;;;:::i;9750:1121::-;9815:23;9841:43;:41;:43::i;:::-;9903:12;;9894:22;;-1:-1:-1;;;9894:22:27;;-1:-1:-1;;;;;9903:12:27;;;9894:22;;;181:51:30;9815:69:27;;-1:-1:-1;;;;;;;;;;;;9894:8:27;;;154:18:30;;9894:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9926:11;-1:-1:-1;;;;;9926:17:27;;9951:10;9926:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9983:13:27;;9974:23;;-1:-1:-1;;;9974:23:27;;-1:-1:-1;;;;;9983:13:27;;;9974:23;;;181:51:30;-1:-1:-1;;;;;;;;;;;9974:8:27;-1:-1:-1;9974:8:27;;-1:-1:-1;154:18:30;;;-1:-1:-1;9974:23:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10007:11;-1:-1:-1;;;;;10007:17:27;;10032:10;10007:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10064:8:27;;10055:18;;-1:-1:-1;;;10055:18:27;;-1:-1:-1;;;;;10064:8:27;;;10055:18;;;181:51:30;-1:-1:-1;;;;;;;;;;;10055:8:27;-1:-1:-1;10055:8:27;;-1:-1:-1;154:18:30;;;-1:-1:-1;10055:18:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10083:11;-1:-1:-1;;;;;10083:19:27;;10110:10;10083:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10133:125;10163:11;-1:-1:-1;;;;;10155:28:27;;10197:10;10133:125;;;;;;;;;;;;;;;;;:8;:125::i;:::-;10313:16;;;10327:1;10313:16;;;;;;;;;10268:42;;10313:16;;;;;;;;;-1:-1:-1;;10370:12:27;;10339:28;;;;-1:-1:-1;;;;;;10370:12:27;;10339:28;;-1:-1:-1;10370:12:27;;10339:28;;;;:::i;:::-;-1:-1:-1;;;;;10339:43:27;;;:28;;;;;;;;;:43;10401:11;;10392:21;;-1:-1:-1;;;10392:21:27;;10401:11;;10392:21;;;181:51:30;-1:-1:-1;;;;;;;;;;;10392:8:27;;;154:18:30;;10392:21:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10423:61:27;;-1:-1:-1;;;10423:61:27;;-1:-1:-1;;;;;10423:34:27;;;-1:-1:-1;10423:34:27;;-1:-1:-1;10423:61:27;;10458:25;;10423:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10494:123;10524:11;-1:-1:-1;;;;;10516:28:27;;10558:9;10494:123;;;;;;;;;;;;;;;;;:8;:123::i;:::-;10627:16;;-1:-1:-1;;;10627:16:27;;10635:7;10627:16;;;9002:25:30;-1:-1:-1;;;;;;;;;;;10627:7:27;;;8975:18:30;;10627:16:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10667:11:27;;10653:26;;-1:-1:-1;;;10653:26:27;;-1:-1:-1;;;;;10667:11:27;;;10653:26;;;181:51:30;-1:-1:-1;;;;;;;;;;;10653:13:27;-1:-1:-1;10653:13:27;;-1:-1:-1;154:18:30;;10653:26:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10689:11;-1:-1:-1;;;;;10689:44:27;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10745:119;10775:11;-1:-1:-1;;;;;10767:28:27;;10809:7;10745:119;;;;;;;;;;;;;-1:-1:-1;;;10745:119:27;;;:8;:119::i;12640:1023::-;12744:16;;;12758:1;12744:16;;;;;;;;;12712:29;;12744:16;;;;;;;;;;;-1:-1:-1;12744:16:27;12712:48;;12788:9;12770:12;12783:1;12770:15;;;;;;;;:::i;:::-;;;;;;;;;;;:27;;;;12857:341;;;-1:-1:-1;12857:341:27;;;12892:16;;;;;;;;12857:341;;12922:16;;;;;;;;;;12857:341;;;;12952:16;;;;;;;;;;12857:341;;;;12982:16;;;;;;;;;;12857:341;;;;;;;;;;13038:7;12857:341;;;;13059:3;12857:341;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12857:341:27;;;;;;;;;;;;;;;;;;;;13217:12;;13208:22;;-1:-1:-1;;;13208:22:27;;-1:-1:-1;;;;;13217:12:27;;;13208:22;;;181:51:30;13208:22:27;;12857:341;;-1:-1:-1;;;;;;;;;;;13208:8:27;;;154:18:30;;;;;-1:-1:-1;13208:22:27;;;;;-1:-1:-1;13208:8:27;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13269:67:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13269:67:27;-1:-1:-1;;;13269:67:27;;;13240:106;;-1:-1:-1;;;13240:106:27;;-1:-1:-1;;;;;;;;;;;13240:15:27;-1:-1:-1;13240:15:27;;-1:-1:-1;13240:106:27;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13379:9;13390:1;13393:17;13412:1;13423;13356:70;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13446:12:27;;13437:22;;-1:-1:-1;;;13437:22:27;;-1:-1:-1;;;;;13446:12:27;;;13437:22;;;181:51:30;-1:-1:-1;;;;;;;;;;;13437:8:27;;;154:18:30;;13437:22:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13498:67:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13498:67:27;-1:-1:-1;;;13498:67:27;;;13469:106;;-1:-1:-1;;;13469:106:27;;-1:-1:-1;;;;;;;;;;;13469:15:27;-1:-1:-1;13469:15:27;;-1:-1:-1;13469:106:27;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13608:10;13620:1;13623:17;13642:1;13653;13585:71;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5469:178:0;5550:1;5545;:6;5541:100;;5572:30;5598:3;5572:30;;;;;;:::i;:::-;;;;;;;;5616:14;5625:1;5628;5264;5259;:6;5255:203;;5286:41;;;;;11160:2:30;11142:21;;;11199:2;11179:18;;;11172:30;11238:34;11233:2;11218:18;;11211:62;-1:-1:-1;;;11304:2:30;11289:18;;11282:32;11346:3;11331:19;;10958:398;5286:41:0;;;;;;;;5346:31;;;11573:21:30;;;11630:2;11610:18;;;11603:30;-1:-1:-1;;;11664:2:30;11649:18;;11642:40;11749:4;11734:20;;11727:36;;;5346:31:0;;;;;;;11714:3:30;5346:31:0;;;5396;;;11986:21:30;;;12043:2;12023:18;;;12016:30;-1:-1:-1;;;12077:2:30;12062:18;;12055:40;12162:4;12147:20;;12140:36;;;5396:31:0;;;;;;;12127:3:30;5396:31:0;;;5441:6;-1:-1:-1;;;;;;;;;;;2978:55:0;3059:16;2445:359;;2645:67;;;-1:-1:-1;;;;;;;;;;;2645:67:0;;;12389:51:30;;;-1:-1:-1;;;12456:18:30;;;12449:34;;;;2705:4:0;12499:18:30;;;12492:34;2482:11:0;;1671:64;2579:43;;12362:18:30;;2645:67:0;;;-1:-1:-1;;2645:67:0;;;;;;;;;;2534:196;;;2645:67;2534:196;;:::i;:::-;;;;-1:-1:-1;;2534:196:0;;;;;;;;;;2499:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2445:359:0;2813:7;:14;;-1:-1:-1;;2813:14:0;;;;;2410:424::o;-1:-1:-1:-;;;;;;;;:::o;2694:127:30:-;2755:10;2750:3;2746:20;2743:1;2736:31;2786:4;2783:1;2776:15;2810:4;2807:1;2800:15;2826:127;2887:10;2882:3;2878:20;2875:1;2868:31;2918:4;2915:1;2908:15;2942:4;2939:1;2932:15;2958:461;3011:3;3049:5;3043:12;3076:6;3071:3;3064:19;3102:4;3131:2;3126:3;3122:12;3115:19;;3168:2;3161:5;3157:14;3189:1;3199:195;3213:6;3210:1;3207:13;3199:195;;;3278:13;;-1:-1:-1;;;;;3274:39:30;3262:52;;3334:12;;;;3369:15;;;;3310:1;3228:9;3199:195;;;-1:-1:-1;3410:3:30;;2958:461;-1:-1:-1;;;;;2958:461:30:o;3424:435::-;3477:3;3515:5;3509:12;3542:6;3537:3;3530:19;3568:4;3597:2;3592:3;3588:12;3581:19;;3634:2;3627:5;3623:14;3655:1;3665:169;3679:6;3676:1;3673:13;3665:169;;;3740:13;;3728:26;;3774:12;;;;3809:15;;;;3701:1;3694:9;3665:169;;3864:250;3949:1;3959:113;3973:6;3970:1;3967:13;3959:113;;;4049:11;;;4043:18;4030:11;;;4023:39;3995:2;3988:10;3959:113;;;-1:-1:-1;;4106:1:30;4088:16;;4081:27;3864:250::o;4119:271::-;4161:3;4199:5;4193:12;4226:6;4221:3;4214:19;4242:76;4311:6;4304:4;4299:3;4295:14;4288:4;4281:5;4277:16;4242:76;:::i;:::-;4372:2;4351:15;-1:-1:-1;;4347:29:30;4338:39;;;;4379:4;4334:50;;4119:271;-1:-1:-1;;4119:271:30:o;4395:1907::-;4459:3;4487:6;4528:5;4522:12;4555:2;4550:3;4543:15;4579:56;4631:2;4626:3;4622:12;4608;4579:56;:::i;:::-;4567:68;;;4683:4;4676:5;4672:16;4666:23;4731:3;4725:4;4721:14;4714:4;4709:3;4705:14;4698:38;4759:50;4804:4;4788:14;4759:50;:::i;:::-;4745:64;;;4857:4;4850:5;4846:16;4840:23;4907:3;4899:6;4895:16;4888:4;4883:3;4879:14;4872:40;4935:52;4980:6;4964:14;4935:52;:::i;:::-;4921:66;;;5035:4;5028:5;5024:16;5018:23;5085:3;5077:6;5073:16;5066:4;5061:3;5057:14;5050:40;5113:52;5158:6;5142:14;5113:52;:::i;:::-;5099:66;;;5213:4;5206:5;5202:16;5196:23;5263:3;5255:6;5251:16;5244:4;5239:3;5235:14;5228:40;5291:52;5336:6;5320:14;5291:52;:::i;:::-;5277:66;;;5392:4;5385:5;5381:16;5375:23;5368:4;5363:3;5359:14;5352:47;5448:4;5441:5;5437:16;5431:23;5424:4;5419:3;5415:14;5408:47;5503:4;5496:5;5492:16;5486:23;5518:47;5559:4;5554:3;5550:14;5534;313:13;306:21;294:34;;243:91;5518:47;-1:-1:-1;5584:6:30;5627:14;;;5621:21;313:13;306:21;5683:12;;;294:34;5715:6;5758:14;;;5752:21;313:13;306:21;5814:12;;;294:34;5846:6;5888:14;;;5882:21;5868:12;;;5861:43;5923:6;5966:14;;;5960:21;-1:-1:-1;;;;;597:31:30;6025:12;;;585:44;6057:6;6099:14;;;6093:21;6079:12;;;6072:43;6134:6;6177:14;;;6171:21;6222:16;;;6208:12;;;6201:38;6255:41;6222:16;6171:21;6255:41;:::i;:::-;6248:48;4395:1907;-1:-1:-1;;;;;;4395:1907:30:o;6307:551::-;6608:6;6597:9;6590:25;6651:3;6646:2;6635:9;6631:18;6624:31;6571:4;6672:68;6735:3;6724:9;6720:19;6712:6;6672:68;:::i;:::-;6771:2;6756:18;;6749:34;;;;-1:-1:-1;;;;;;6819:32:30;;;;6814:2;6799:18;;;6792:60;6664:76;6307:551;-1:-1:-1;;6307:551:30:o;7071:658::-;7242:2;7294:21;;;7364:13;;7267:18;;;7386:22;;;7213:4;;7242:2;7465:15;;;;7439:2;7424:18;;;7213:4;7508:195;7522:6;7519:1;7516:13;7508:195;;;7587:13;;-1:-1:-1;;;;;7583:39:30;7571:52;;7678:15;;;;7643:12;;;;7619:1;7537:9;7508:195;;;-1:-1:-1;7720:3:30;;7071:658;-1:-1:-1;;;;;;7071:658:30:o;7734:184::-;7804:6;7857:2;7845:9;7836:7;7832:23;7828:32;7825:52;;;7873:1;7870;7863:12;7825:52;-1:-1:-1;7896:16:30;;7734:184;-1:-1:-1;7734:184:30:o;7923:127::-;7984:10;7979:3;7975:20;7972:1;7965:31;8015:4;8012:1;8005:15;8039:4;8036:1;8029:15;8619:218;8766:2;8755:9;8748:21;8729:4;8786:45;8827:2;8816:9;8812:18;8804:6;8786:45;:::i;:::-;8778:53;8619:218;-1:-1:-1;;;8619:218:30:o;9038:222::-;9103:9;;;9124:10;;;9121:133;;;9176:10;9171:3;9167:20;9164:1;9157:31;9211:4;9208:1;9201:15;9239:4;9236:1;9229:15;9121:133;9038:222;;;;:::o;9544:384::-;-1:-1:-1;;;;;;9729:33:30;;9717:46;;9786:13;;9699:3;;9808:74;9786:13;9871:1;9862:11;;9855:4;9843:17;;9808:74;:::i;:::-;9902:16;;;;9920:1;9898:24;;9544:384;-1:-1:-1;;;9544:384:30:o;9933:287::-;10062:3;10100:6;10094:13;10116:66;10175:6;10170:3;10163:4;10155:6;10151:17;10116:66;:::i;:::-;10198:16;;;;;9933:287;-1:-1:-1;;9933:287:30:o;10225:277::-;10292:6;10345:2;10333:9;10324:7;10320:23;10316:32;10313:52;;;10361:1;10358;10351:12;10313:52;10393:9;10387:16;10446:5;10439:13;10432:21;10425:5;10422:32;10412:60;;10468:1;10465;10458:12;10507:446;10757:2;10746:9;10739:21;10796:1;10791:2;10780:9;10776:18;10769:29;-1:-1:-1;;;10829:2:30;10818:9;10814:18;10807:35;10880:3;10873:4;10862:9;10858:20;10851:33;10720:4;10901:46;10942:3;10931:9;10927:19;10919:6;10901:46;:::i",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "IS_TEST()": "fa7626d4",
    "failed()": "ba414fa6",
    "initializePepperstakeContractWithDefaults()": "7b5340cd",
    "initializePepperstakeContractWithFees()": "0afd5562",
    "setUp()": "0a9254e4",
    "testApproveEmptyList()": "ac6a4242",
    "testApproveForParticipants()": "0bb3f8f1",
    "testApproveInvalidParticipant()": "2f647527",
    "testApproveWindowOver()": "51e79748",
    "testCreatorParticipation()": "4c504632",
    "testCreatorParticipationWithIncorrectAmount()": "fdb5d2db",
    "testFeeSumExceeds100Percent()": "69ded122",
    "testParticipantAllowList()": "1fc168ee",
    "testPostCompletionWindowDistribution()": "e63bdc2c",
    "testPostCompletionWindowDistributionAlreadyCalled()": "bff88651",
    "testPostCompletionWindowDistributionReturnWindowNotOver()": "8d61b56e",
    "testSponsor()": "0d930ecd",
    "testSponsorReturnWindowOver()": "7d28054b",
    "testStake()": "3a1143da",
    "testStakeAlreadyParticipating()": "523a6ee8",
    "testStakeIncorrectAmount()": "3a1a8594",
    "testStakeMaxParticipantsReached()": "281fef2f",
    "testStakeReturnWindowOver()": "e608f5bf"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializePepperstakeContractWithDefaults\",\"outputs\":[{\"internalType\":\"contract PepperStake\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializePepperstakeContractWithFees\",\"outputs\":[{\"internalType\":\"contract PepperStake\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testApproveEmptyList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testApproveForParticipants\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testApproveInvalidParticipant\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testApproveWindowOver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testCreatorParticipation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testCreatorParticipationWithIncorrectAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFeeSumExceeds100Percent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testParticipantAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPostCompletionWindowDistribution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPostCompletionWindowDistributionAlreadyCalled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPostCompletionWindowDistributionReturnWindowNotOver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSponsorReturnWindowOver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStakeAlreadyParticipating\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStakeIncorrectAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStakeMaxParticipantsReached\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testStakeReturnWindowOver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/PepperStake_Unit.t.sol\":\"PepperStakeTest\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@prb/contracts/=lib/prb-contracts/src/\",\":@prb/math/=lib/prb-contracts/lib/prb-math/contracts/\",\":@prb/test/=lib/prb-contracts/lib/prb-test/src/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":prb-contracts/=lib/prb-contracts/src/\",\":prb-math/=lib/prb-contracts/lib/prb-math/contracts/\",\":prb-test/=lib/prb-contracts/lib/prb-test/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Common.sol\":{\"keccak256\":\"0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b\",\"dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn\"]},\"lib/forge-std/src/Components.sol\":{\"keccak256\":\"0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd\",\"dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xd2ac402483b70ead6e053993c03253a9d7d6b437a981b7a0158c4748abf202f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f662716875766eb46d34de4949bfb79ca6c408054f004fff0b2fc23d967182f8\",\"dweb:/ipfs/QmeNGCZBnSDjK7djHuGJ34kV2rNh8SL69SJTjR1PEsgJi1\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x9e421049151727ad09416e8d85e9bab277971f2ff750f230f50ef3c22ee40532\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8309e82f8020f4936d10b800b6166b28c4ea21b6f25d670b6735bd5d664ded3\",\"dweb:/ipfs/QmQP9d7uDsUGypHuc5LCd8zD4TsmvSqRUEqX2npMo6NLiQ\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce189d25fa333ca6611c0d24a16482df6256420764c747e783e60cf9f28c922e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0237b62ace5fe2311343eb32299b2f1cf0177394d9826eae23f1d1f92ae31f09\",\"dweb:/ipfs/QmVxvdgnheCWjBqE75nvapSKSr3UPRLrZQzxjcf5vxDmE2\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a\",\"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xdfdea2fc16ca475b82c74ef8a1ee50249a086ea3e1d7dcb2fc5b507f2b69500b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e68c4ac142bfdcacfc1a3ffadb63e67213464be620b277586ccf74605ccc33d3\",\"dweb:/ipfs/QmXAiLV8LT4h4z6x1xc88BfJpkddSdGtQkBbtPf441MCqi\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x1d048e702d241727d75685d7516b51b72ff23513f6e2193e569f0fbc2a9112ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089652ff5d0bb1093f684863b3def0a505edb9c6fd533f8bceb1f12ce833c90e\",\"dweb:/ipfs/QmccjqbH8guWaVDi3QAEirMMs45XF3VV68dwBa5xwnFL1k\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x2d0cec0827a5ee9df571cde75cb742f8b977218283739e163801baa8c34439f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310afde56e845d7f36ca7ce191715038f8259d7a9250c171689744a797223556\",\"dweb:/ipfs/QmULG8AwNa5B64EMUSCwG1bAyJJK1sodAsAYvjk3vXbgMj\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa\",\"dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD\"]},\"lib/prb-contracts/lib/prb-math/contracts/PRBMath.sol\":{\"keccak256\":\"0xe981069ba1d98749de50dec3983d023a996575d2e7e983f9eb4a33601f655766\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://2804382c50036b38925399624a1a271b50f77ac5476d93fa703266bb60e70de8\",\"dweb:/ipfs/QmXbw6xZc3tBt8MEwSymL9H842xPcnHVu9pwNzf5wAgCoH\"]},\"lib/prb-contracts/src/math/PRBMath.sol\":{\"keccak256\":\"0x4a7bb95f286e312398056763caf966e52e65c1e3a6c1f27ee0e68d7b9021e3ea\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://10063e5b76fd2c63f8a260e6e76a186256bf1808c743a35c6fd0c004c4018653\",\"dweb:/ipfs/QmddD2Je4MEVJxcy1UiuZAM7VxmJT3B6oMhqXP4oBiAkFq\"]},\"src/PepperStake.sol\":{\"keccak256\":\"0xaa53229ab9467f9b10891594999c6f18429533c4db3d1eee4e8cb709ed2005da\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3f8590d71fbbcfeb4a7ec5aad5b4f214d4e0d1b3db7bb7d12db7b6b75b5eb9ab\",\"dweb:/ipfs/QmUxDz8TuM54whDJTTVYECsYwGroQ82SNb93QRnQuCUjsc\"]},\"src/interfaces/IPepperStake.sol\":{\"keccak256\":\"0xc6ac6776d6271d2a2bb1818740c8e72f899427434d91af0767b3426515dfb510\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d05b3690f9aca46f1cad78a14f43dbcaf7897ed1b1ffa3665e068c96f4a928e5\",\"dweb:/ipfs/QmdD6tMj2wsspNuSbq611xxkrRtgaRBavnF533uw3y9eiN\"]},\"src/interfaces/IPepperStakeOracleDelegate.sol\":{\"keccak256\":\"0x3321ae9d7b6a6393e9915163476d1f6431fb942da3fd56af5acc244293b4c4b5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b0146ab1d43908105a2bd535d911304d9c6b27d51868a75c2aeb79bdf9bad3d3\",\"dweb:/ipfs/QmS8nQGXmyPqWqd9peS2amNxjRqMJ3DB6SGiFzarkARJqM\"]},\"src/structs/LaunchPepperStakeData.sol\":{\"keccak256\":\"0x68ebed60b6f6358bbe49c306e12e97ae7180d8a1c5c5174f8c3ead240aaef28f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4d77a2e64c6d3641e697b71a6edee2a909a410f45f2c49cd90d2dba128a4d7ea\",\"dweb:/ipfs/QmNydFUjCzvadvAtbKYpmJfCsWBG6K1naxzhqbk3BqjUp2\"]},\"src/structs/Participant.sol\":{\"keccak256\":\"0x6b444aa2c6968f7214d775467f0990d540682698b04409f09008ae6435023ea2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a4c9e6bccbacf6f5bd327a0fec96a9dcbb52110de052f428796a47032df45fc8\",\"dweb:/ipfs/QmPVTJq28H7RGnNGSkdCgC5iqKCceh2hSNcebmripcfhEG\"]},\"test/PepperStake_Unit.t.sol\":{\"keccak256\":\"0x49811006f1d3f916af00d41a8fc2d89cedb4562d52b434060da76baf74a3aea3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2b6d1a7e763ec32b75f21daa38ef48b3d46dacae69f2d141ddc8743bb2372ea5\",\"dweb:/ipfs/Qmex85WSSHf3BehjLJUmYzVkEnfD9HiUfYMXYSNGyM1meC\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.17+commit.8df45f5f"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_address",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "val",
              "type": "uint256[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "int256[]",
              "name": "val",
              "type": "int256[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address[]",
              "name": "val",
              "type": "address[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_bytes",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_bytes32",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "int256",
              "name": "",
              "type": "int256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_int",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "val",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_address",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "uint256[]",
              "name": "val",
              "type": "uint256[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "int256[]",
              "name": "val",
              "type": "int256[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "address[]",
              "name": "val",
              "type": "address[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_array",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "bytes",
              "name": "val",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_bytes",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "val",
              "type": "bytes32",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_bytes32",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "int256",
              "name": "val",
              "type": "int256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "decimals",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_decimal_int",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "val",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "decimals",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_decimal_uint",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "int256",
              "name": "val",
              "type": "int256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_int",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "string",
              "name": "val",
              "type": "string",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_string",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "key",
              "type": "string",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "val",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_named_uint",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_string",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "log_uint",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "logs",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "IS_TEST",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "failed",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "initializePepperstakeContractWithDefaults",
          "outputs": [
            {
              "internalType": "contract PepperStake",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "initializePepperstakeContractWithFees",
          "outputs": [
            {
              "internalType": "contract PepperStake",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setUp"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testApproveEmptyList"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testApproveForParticipants"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testApproveInvalidParticipant"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testApproveWindowOver"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testCreatorParticipation"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testCreatorParticipationWithIncorrectAmount"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testFeeSumExceeds100Percent"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testParticipantAllowList"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testPostCompletionWindowDistribution"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testPostCompletionWindowDistributionAlreadyCalled"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testPostCompletionWindowDistributionReturnWindowNotOver"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testSponsor"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testSponsorReturnWindowOver"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStake"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStakeAlreadyParticipating"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStakeIncorrectAmount"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStakeMaxParticipantsReached"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "testStakeReturnWindowOver"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        ":@prb/contracts/=lib/prb-contracts/src/",
        ":@prb/math/=lib/prb-contracts/lib/prb-math/contracts/",
        ":@prb/test/=lib/prb-contracts/lib/prb-test/src/",
        ":ds-test/=lib/ds-test/src/",
        ":forge-std/=lib/forge-std/src/",
        ":prb-contracts/=lib/prb-contracts/src/",
        ":prb-math/=lib/prb-contracts/lib/prb-math/contracts/",
        ":prb-test/=lib/prb-contracts/lib/prb-test/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "test/PepperStake_Unit.t.sol": "PepperStakeTest"
      },
      "libraries": {}
    },
    "sources": {
      "lib/forge-std/lib/ds-test/src/test.sol": {
        "keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54",
        "urls": [
          "bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5",
          "dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"
        ],
        "license": "GPL-3.0-or-later"
      },
      "lib/forge-std/src/Common.sol": {
        "keccak256": "0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0",
        "urls": [
          "bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b",
          "dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Components.sol": {
        "keccak256": "0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149",
        "urls": [
          "bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd",
          "dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdAssertions.sol": {
        "keccak256": "0xd2ac402483b70ead6e053993c03253a9d7d6b437a981b7a0158c4748abf202f5",
        "urls": [
          "bzz-raw://f662716875766eb46d34de4949bfb79ca6c408054f004fff0b2fc23d967182f8",
          "dweb:/ipfs/QmeNGCZBnSDjK7djHuGJ34kV2rNh8SL69SJTjR1PEsgJi1"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdCheats.sol": {
        "keccak256": "0x9e421049151727ad09416e8d85e9bab277971f2ff750f230f50ef3c22ee40532",
        "urls": [
          "bzz-raw://d8309e82f8020f4936d10b800b6166b28c4ea21b6f25d670b6735bd5d664ded3",
          "dweb:/ipfs/QmQP9d7uDsUGypHuc5LCd8zD4TsmvSqRUEqX2npMo6NLiQ"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdError.sol": {
        "keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77",
        "urls": [
          "bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6",
          "dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdJson.sol": {
        "keccak256": "0xce189d25fa333ca6611c0d24a16482df6256420764c747e783e60cf9f28c922e",
        "urls": [
          "bzz-raw://0237b62ace5fe2311343eb32299b2f1cf0177394d9826eae23f1d1f92ae31f09",
          "dweb:/ipfs/QmVxvdgnheCWjBqE75nvapSKSr3UPRLrZQzxjcf5vxDmE2"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdMath.sol": {
        "keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2",
        "urls": [
          "bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92",
          "dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdStorage.sol": {
        "keccak256": "0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5",
        "urls": [
          "bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a",
          "dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdUtils.sol": {
        "keccak256": "0xdfdea2fc16ca475b82c74ef8a1ee50249a086ea3e1d7dcb2fc5b507f2b69500b",
        "urls": [
          "bzz-raw://e68c4ac142bfdcacfc1a3ffadb63e67213464be620b277586ccf74605ccc33d3",
          "dweb:/ipfs/QmXAiLV8LT4h4z6x1xc88BfJpkddSdGtQkBbtPf441MCqi"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Test.sol": {
        "keccak256": "0x1d048e702d241727d75685d7516b51b72ff23513f6e2193e569f0fbc2a9112ad",
        "urls": [
          "bzz-raw://089652ff5d0bb1093f684863b3def0a505edb9c6fd533f8bceb1f12ce833c90e",
          "dweb:/ipfs/QmccjqbH8guWaVDi3QAEirMMs45XF3VV68dwBa5xwnFL1k"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Vm.sol": {
        "keccak256": "0x2d0cec0827a5ee9df571cde75cb742f8b977218283739e163801baa8c34439f6",
        "urls": [
          "bzz-raw://310afde56e845d7f36ca7ce191715038f8259d7a9250c171689744a797223556",
          "dweb:/ipfs/QmULG8AwNa5B64EMUSCwG1bAyJJK1sodAsAYvjk3vXbgMj"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/console.sol": {
        "keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
        "urls": [
          "bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
          "dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/console2.sol": {
        "keccak256": "0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f",
        "urls": [
          "bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa",
          "dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD"
        ],
        "license": "MIT"
      },
      "lib/prb-contracts/lib/prb-math/contracts/PRBMath.sol": {
        "keccak256": "0xe981069ba1d98749de50dec3983d023a996575d2e7e983f9eb4a33601f655766",
        "urls": [
          "bzz-raw://2804382c50036b38925399624a1a271b50f77ac5476d93fa703266bb60e70de8",
          "dweb:/ipfs/QmXbw6xZc3tBt8MEwSymL9H842xPcnHVu9pwNzf5wAgCoH"
        ],
        "license": "Unlicense"
      },
      "lib/prb-contracts/src/math/PRBMath.sol": {
        "keccak256": "0x4a7bb95f286e312398056763caf966e52e65c1e3a6c1f27ee0e68d7b9021e3ea",
        "urls": [
          "bzz-raw://10063e5b76fd2c63f8a260e6e76a186256bf1808c743a35c6fd0c004c4018653",
          "dweb:/ipfs/QmddD2Je4MEVJxcy1UiuZAM7VxmJT3B6oMhqXP4oBiAkFq"
        ],
        "license": "Unlicense"
      },
      "src/PepperStake.sol": {
        "keccak256": "0xaa53229ab9467f9b10891594999c6f18429533c4db3d1eee4e8cb709ed2005da",
        "urls": [
          "bzz-raw://3f8590d71fbbcfeb4a7ec5aad5b4f214d4e0d1b3db7bb7d12db7b6b75b5eb9ab",
          "dweb:/ipfs/QmUxDz8TuM54whDJTTVYECsYwGroQ82SNb93QRnQuCUjsc"
        ],
        "license": "UNLICENSED"
      },
      "src/interfaces/IPepperStake.sol": {
        "keccak256": "0xc6ac6776d6271d2a2bb1818740c8e72f899427434d91af0767b3426515dfb510",
        "urls": [
          "bzz-raw://d05b3690f9aca46f1cad78a14f43dbcaf7897ed1b1ffa3665e068c96f4a928e5",
          "dweb:/ipfs/QmdD6tMj2wsspNuSbq611xxkrRtgaRBavnF533uw3y9eiN"
        ],
        "license": "UNLICENSED"
      },
      "src/interfaces/IPepperStakeOracleDelegate.sol": {
        "keccak256": "0x3321ae9d7b6a6393e9915163476d1f6431fb942da3fd56af5acc244293b4c4b5",
        "urls": [
          "bzz-raw://b0146ab1d43908105a2bd535d911304d9c6b27d51868a75c2aeb79bdf9bad3d3",
          "dweb:/ipfs/QmS8nQGXmyPqWqd9peS2amNxjRqMJ3DB6SGiFzarkARJqM"
        ],
        "license": "UNLICENSED"
      },
      "src/structs/LaunchPepperStakeData.sol": {
        "keccak256": "0x68ebed60b6f6358bbe49c306e12e97ae7180d8a1c5c5174f8c3ead240aaef28f",
        "urls": [
          "bzz-raw://4d77a2e64c6d3641e697b71a6edee2a909a410f45f2c49cd90d2dba128a4d7ea",
          "dweb:/ipfs/QmNydFUjCzvadvAtbKYpmJfCsWBG6K1naxzhqbk3BqjUp2"
        ],
        "license": "UNLICENSED"
      },
      "src/structs/Participant.sol": {
        "keccak256": "0x6b444aa2c6968f7214d775467f0990d540682698b04409f09008ae6435023ea2",
        "urls": [
          "bzz-raw://a4c9e6bccbacf6f5bd327a0fec96a9dcbb52110de052f428796a47032df45fc8",
          "dweb:/ipfs/QmPVTJq28H7RGnNGSkdCgC5iqKCceh2hSNcebmripcfhEG"
        ],
        "license": "UNLICENSED"
      },
      "test/PepperStake_Unit.t.sol": {
        "keccak256": "0x49811006f1d3f916af00d41a8fc2d89cedb4562d52b434060da76baf74a3aea3",
        "urls": [
          "bzz-raw://2b6d1a7e763ec32b75f21daa38ef48b3d46dacae69f2d141ddc8743bb2372ea5",
          "dweb:/ipfs/Qmex85WSSHf3BehjLJUmYzVkEnfD9HiUfYMXYSNGyM1meC"
        ],
        "license": "UNLICENSED"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "test/PepperStake_Unit.t.sol",
    "id": 29728,
    "exportedSymbols": {
      "CommonBase": [
        1818
      ],
      "DSTest": [
        1786
      ],
      "IPepperStake": [
        27651
      ],
      "IPepperStakeOracleDelegate": [
        27694
      ],
      "LaunchPepperStakeData": [
        27730
      ],
      "PRBMath": [
        26338
      ],
      "Participant": [
        27741
      ],
      "PepperStake": [
        27480
      ],
      "PepperStakeTest": [
        29727
      ],
      "StdAssertions": [
        2677
      ],
      "StdCheats": [
        5073
      ],
      "StdStorage": [
        5672
      ],
      "StdUtils": [
        7501
      ],
      "Test": [
        7532
      ],
      "TestBase": [
        7521
      ],
      "Vm": [
        8315
      ],
      "console": [
        16379
      ],
      "console2": [
        24444
      ],
      "stdError": [
        5139
      ],
      "stdJson": [
        5499
      ],
      "stdMath": [
        5641
      ],
      "stdStorage": [
        7106
      ]
    },
    "nodeType": "SourceUnit",
    "src": "39:14974:27",
    "nodes": [
      {
        "id": 28069,
        "nodeType": "PragmaDirective",
        "src": "39:24:27",
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".13"
        ]
      },
      {
        "id": 28070,
        "nodeType": "ImportDirective",
        "src": "65:28:27",
        "absolutePath": "lib/forge-std/src/Test.sol",
        "file": "forge-std/Test.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 29728,
        "sourceUnit": 7533,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 28071,
        "nodeType": "ImportDirective",
        "src": "94:32:27",
        "absolutePath": "src/PepperStake.sol",
        "file": "../src/PepperStake.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 29728,
        "sourceUnit": 27481,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 28072,
        "nodeType": "ImportDirective",
        "src": "127:50:27",
        "absolutePath": "src/structs/LaunchPepperStakeData.sol",
        "file": "../src/structs/LaunchPepperStakeData.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 29728,
        "sourceUnit": 27731,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 29727,
        "nodeType": "ContractDefinition",
        "src": "179:14833:27",
        "nodes": [
          {
            "id": 28085,
            "nodeType": "VariableDeclaration",
            "src": "218:74:27",
            "constant": false,
            "mutability": "mutable",
            "name": "_participant",
            "nameLocation": "235:12:27",
            "scope": 29727,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 28075,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "218:7:27",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "arguments": [
                        {
                          "hexValue": "7061727469636970616e74",
                          "id": 28081,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "276:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_89ac24e9d325e5935dd9098bddc7f9879a6b0e297f7e2423d271ca0fed835edb",
                            "typeString": "literal_string \"participant\""
                          },
                          "value": "participant"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_89ac24e9d325e5935dd9098bddc7f9879a6b0e297f7e2423d271ca0fed835edb",
                            "typeString": "literal_string \"participant\""
                          }
                        ],
                        "id": 28080,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "266:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 28082,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "266:24:27",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    ],
                    "id": 28079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "258:7:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes20_$",
                      "typeString": "type(bytes20)"
                    },
                    "typeName": {
                      "id": 28078,
                      "name": "bytes20",
                      "nodeType": "ElementaryTypeName",
                      "src": "258:7:27",
                      "typeDescriptions": {}
                    }
                  },
                  "id": 28083,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "258:33:27",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                ],
                "id": 28077,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "250:7:27",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": {
                  "id": 28076,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "250:7:27",
                  "typeDescriptions": {}
                }
              },
              "id": 28084,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "250:42:27",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 28096,
            "nodeType": "VariableDeclaration",
            "src": "298:84:27",
            "constant": false,
            "mutability": "mutable",
            "name": "_participant2",
            "nameLocation": "315:13:27",
            "scope": 29727,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 28086,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "298:7:27",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "arguments": [
                        {
                          "hexValue": "7061727469636970616e7432",
                          "id": 28092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "365:14:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_cdaeda3f1bd11c1ec375a3746d05b54634c58c25f5983416779d7a7c931f91e5",
                            "typeString": "literal_string \"participant2\""
                          },
                          "value": "participant2"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_cdaeda3f1bd11c1ec375a3746d05b54634c58c25f5983416779d7a7c931f91e5",
                            "typeString": "literal_string \"participant2\""
                          }
                        ],
                        "id": 28091,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "355:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 28093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "355:25:27",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    ],
                    "id": 28090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "347:7:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes20_$",
                      "typeString": "type(bytes20)"
                    },
                    "typeName": {
                      "id": 28089,
                      "name": "bytes20",
                      "nodeType": "ElementaryTypeName",
                      "src": "347:7:27",
                      "typeDescriptions": {}
                    }
                  },
                  "id": 28094,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "347:34:27",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                ],
                "id": 28088,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "339:7:27",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": {
                  "id": 28087,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "339:7:27",
                  "typeDescriptions": {}
                }
              },
              "id": 28095,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "339:43:27",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 28107,
            "nodeType": "VariableDeclaration",
            "src": "388:66:27",
            "constant": false,
            "mutability": "mutable",
            "name": "_sponsor",
            "nameLocation": "405:8:27",
            "scope": 29727,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 28097,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "388:7:27",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "arguments": [
                        {
                          "hexValue": "73706f6e736f72",
                          "id": 28103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "442:9:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_e80fb92299ed640261f22bb7d7b1b877eb589e85f26da49c85e89a10bc53fe07",
                            "typeString": "literal_string \"sponsor\""
                          },
                          "value": "sponsor"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_e80fb92299ed640261f22bb7d7b1b877eb589e85f26da49c85e89a10bc53fe07",
                            "typeString": "literal_string \"sponsor\""
                          }
                        ],
                        "id": 28102,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "432:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 28104,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "432:20:27",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    ],
                    "id": 28101,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "424:7:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes20_$",
                      "typeString": "type(bytes20)"
                    },
                    "typeName": {
                      "id": 28100,
                      "name": "bytes20",
                      "nodeType": "ElementaryTypeName",
                      "src": "424:7:27",
                      "typeDescriptions": {}
                    }
                  },
                  "id": 28105,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "424:29:27",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                ],
                "id": 28099,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "416:7:27",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": {
                  "id": 28098,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "416:7:27",
                  "typeDescriptions": {}
                }
              },
              "id": 28106,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "416:38:27",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 28118,
            "nodeType": "VariableDeclaration",
            "src": "460:72:27",
            "constant": false,
            "mutability": "mutable",
            "name": "_supervisor",
            "nameLocation": "477:11:27",
            "scope": 29727,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 28108,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "460:7:27",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "arguments": [
                        {
                          "hexValue": "73757065727669736f72",
                          "id": 28114,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "517:12:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_3445f4fe153b2c8b267ef6203c478ca3a552827af9bd48b96968bd29d800f5dc",
                            "typeString": "literal_string \"supervisor\""
                          },
                          "value": "supervisor"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_3445f4fe153b2c8b267ef6203c478ca3a552827af9bd48b96968bd29d800f5dc",
                            "typeString": "literal_string \"supervisor\""
                          }
                        ],
                        "id": 28113,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "507:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 28115,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "507:23:27",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    ],
                    "id": 28112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "499:7:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes20_$",
                      "typeString": "type(bytes20)"
                    },
                    "typeName": {
                      "id": 28111,
                      "name": "bytes20",
                      "nodeType": "ElementaryTypeName",
                      "src": "499:7:27",
                      "typeDescriptions": {}
                    }
                  },
                  "id": 28116,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "499:32:27",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  }
                ],
                "id": 28110,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "491:7:27",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": {
                  "id": 28109,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "491:7:27",
                  "typeDescriptions": {}
                }
              },
              "id": 28117,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "491:41:27",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 28178,
            "nodeType": "FunctionDefinition",
            "src": "539:376:27",
            "body": {
              "id": 28177,
              "nodeType": "Block",
              "src": "563:352:27",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28124,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "582:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "7061727469636970616e74",
                        "id": 28125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "596:13:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_89ac24e9d325e5935dd9098bddc7f9879a6b0e297f7e2423d271ca0fed835edb",
                          "typeString": "literal_string \"participant\""
                        },
                        "value": "participant"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_89ac24e9d325e5935dd9098bddc7f9879a6b0e297f7e2423d271ca0fed835edb",
                          "typeString": "literal_string \"participant\""
                        }
                      ],
                      "expression": {
                        "id": 28121,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "573:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "576:5:27",
                      "memberName": "label",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7746,
                      "src": "573:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory) external"
                      }
                    },
                    "id": 28126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "573:37:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28127,
                  "nodeType": "ExpressionStatement",
                  "src": "573:37:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28131,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28096,
                        "src": "629:13:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "7061727469636970616e7432",
                        "id": 28132,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "644:14:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cdaeda3f1bd11c1ec375a3746d05b54634c58c25f5983416779d7a7c931f91e5",
                          "typeString": "literal_string \"participant2\""
                        },
                        "value": "participant2"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cdaeda3f1bd11c1ec375a3746d05b54634c58c25f5983416779d7a7c931f91e5",
                          "typeString": "literal_string \"participant2\""
                        }
                      ],
                      "expression": {
                        "id": 28128,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "620:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28130,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "623:5:27",
                      "memberName": "label",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7746,
                      "src": "620:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory) external"
                      }
                    },
                    "id": 28133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "620:39:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28134,
                  "nodeType": "ExpressionStatement",
                  "src": "620:39:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28138,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28107,
                        "src": "678:8:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "73706f6e736f72",
                        "id": 28139,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "688:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e80fb92299ed640261f22bb7d7b1b877eb589e85f26da49c85e89a10bc53fe07",
                          "typeString": "literal_string \"sponsor\""
                        },
                        "value": "sponsor"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e80fb92299ed640261f22bb7d7b1b877eb589e85f26da49c85e89a10bc53fe07",
                          "typeString": "literal_string \"sponsor\""
                        }
                      ],
                      "expression": {
                        "id": 28135,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "669:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28137,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "672:5:27",
                      "memberName": "label",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7746,
                      "src": "669:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory) external"
                      }
                    },
                    "id": 28140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "669:29:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28141,
                  "nodeType": "ExpressionStatement",
                  "src": "669:29:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28145,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "717:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "73757065727669736f72",
                        "id": 28146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "730:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3445f4fe153b2c8b267ef6203c478ca3a552827af9bd48b96968bd29d800f5dc",
                          "typeString": "literal_string \"supervisor\""
                        },
                        "value": "supervisor"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3445f4fe153b2c8b267ef6203c478ca3a552827af9bd48b96968bd29d800f5dc",
                          "typeString": "literal_string \"supervisor\""
                        }
                      ],
                      "expression": {
                        "id": 28142,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "708:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28144,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "711:5:27",
                      "memberName": "label",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7746,
                      "src": "708:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory) external"
                      }
                    },
                    "id": 28147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "708:35:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28148,
                  "nodeType": "ExpressionStatement",
                  "src": "708:35:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28152,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "762:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "313030",
                        "id": 28153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "776:9:27",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        },
                        "value": "100"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        }
                      ],
                      "expression": {
                        "id": 28149,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "754:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "757:4:27",
                      "memberName": "deal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8067,
                      "src": "754:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 28154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "754:32:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28155,
                  "nodeType": "ExpressionStatement",
                  "src": "754:32:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28159,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28096,
                        "src": "804:13:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "313030",
                        "id": 28160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "819:9:27",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        },
                        "value": "100"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        }
                      ],
                      "expression": {
                        "id": 28156,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "796:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28158,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "799:4:27",
                      "memberName": "deal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8067,
                      "src": "796:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 28161,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "796:33:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28162,
                  "nodeType": "ExpressionStatement",
                  "src": "796:33:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28166,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28107,
                        "src": "847:8:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "313030",
                        "id": 28167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "857:9:27",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        },
                        "value": "100"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        }
                      ],
                      "expression": {
                        "id": 28163,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "839:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28165,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "842:4:27",
                      "memberName": "deal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8067,
                      "src": "839:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 28168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "839:28:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28169,
                  "nodeType": "ExpressionStatement",
                  "src": "839:28:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28173,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "885:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "313030",
                        "id": 28174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "898:9:27",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        },
                        "value": "100"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000"
                        }
                      ],
                      "expression": {
                        "id": 28170,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "877:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28172,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "880:4:27",
                      "memberName": "deal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8067,
                      "src": "877:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 28175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "877:31:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28176,
                  "nodeType": "ExpressionStatement",
                  "src": "877:31:27"
                }
              ]
            },
            "functionSelector": "0a9254e4",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setUp",
            "nameLocation": "548:5:27",
            "parameters": {
              "id": 28119,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "553:2:27"
            },
            "returnParameters": {
              "id": 28120,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "563:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28181,
            "nodeType": "VariableDeclaration",
            "src": "921:31:27",
            "constant": false,
            "mutability": "mutable",
            "name": "MAX_FEE",
            "nameLocation": "929:7:27",
            "scope": 29727,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 28179,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "921:7:27",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "315f3030305f3030305f303030",
              "id": 28180,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "939:13:27",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000000_by_1",
                "typeString": "int_const 1000000000"
              },
              "value": "1_000_000_000"
            },
            "visibility": "internal"
          },
          {
            "id": 28301,
            "nodeType": "FunctionDefinition",
            "src": "959:1107:27",
            "body": {
              "id": 28300,
              "nodeType": "Block",
              "src": "1061:1005:27",
              "statements": [
                {
                  "assignments": [
                    28191
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28191,
                      "mutability": "mutable",
                      "name": "supervisors",
                      "nameLocation": "1088:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28300,
                      "src": "1071:28:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28189,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1071:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28190,
                        "nodeType": "ArrayTypeName",
                        "src": "1071:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28197,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1116:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 28194,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1102:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28192,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1106:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28193,
                        "nodeType": "ArrayTypeName",
                        "src": "1106:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 28196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1102:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1071:47:27"
                },
                {
                  "expression": {
                    "id": 28202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28198,
                        "name": "supervisors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28191,
                        "src": "1128:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 28200,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1140:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1128:14:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 28201,
                      "name": "_supervisor",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28118,
                      "src": "1145:11:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1128:28:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 28203,
                  "nodeType": "ExpressionStatement",
                  "src": "1128:28:27"
                },
                {
                  "assignments": [
                    28208
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28208,
                      "mutability": "mutable",
                      "name": "unreturnedStakeBeneficiaries",
                      "nameLocation": "1184:28:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28300,
                      "src": "1167:45:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28206,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1167:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28207,
                        "nodeType": "ArrayTypeName",
                        "src": "1167:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28214,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1229:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 28211,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1215:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28209,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1219:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28210,
                        "nodeType": "ArrayTypeName",
                        "src": "1219:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 28213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1215:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1167:64:27"
                },
                {
                  "expression": {
                    "id": 28227,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28215,
                        "name": "unreturnedStakeBeneficiaries",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28208,
                        "src": "1241:28:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 28217,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28216,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1270:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1241:31:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "5065707065727374616b6544414f",
                                  "id": 28223,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1314:16:27",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d23",
                                    "typeString": "literal_string \"PepperstakeDAO\""
                                  },
                                  "value": "PepperstakeDAO"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d23",
                                    "typeString": "literal_string \"PepperstakeDAO\""
                                  }
                                ],
                                "id": 28222,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -8,
                                "src": "1304:9:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes memory) pure returns (bytes32)"
                                }
                              },
                              "id": 28224,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1304:27:27",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 28221,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1296:7:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes20_$",
                              "typeString": "type(bytes20)"
                            },
                            "typeName": {
                              "id": 28220,
                              "name": "bytes20",
                              "nodeType": "ElementaryTypeName",
                              "src": "1296:7:27",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 28225,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1296:36:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        ],
                        "id": 28219,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1275:7:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 28218,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1275:7:27",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 28226,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1275:67:27",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1241:101:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 28228,
                  "nodeType": "ExpressionStatement",
                  "src": "1241:101:27"
                },
                {
                  "assignments": [
                    28233
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28233,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "1370:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28300,
                      "src": "1353:29:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28231,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1353:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 28232,
                        "nodeType": "ArrayTypeName",
                        "src": "1353:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28239,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "32",
                        "id": 28237,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1399:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        }
                      ],
                      "id": 28236,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1385:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28234,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1389:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 28235,
                        "nodeType": "ArrayTypeName",
                        "src": "1389:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 28238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1385:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1353:48:27"
                },
                {
                  "expression": {
                    "id": 28244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28240,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28233,
                        "src": "1411:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 28242,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28241,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1424:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1411:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 28243,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1429:10:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "1411:28:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 28245,
                  "nodeType": "ExpressionStatement",
                  "src": "1411:28:27"
                },
                {
                  "expression": {
                    "id": 28250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28246,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28233,
                        "src": "1449:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 28248,
                      "indexExpression": {
                        "hexValue": "31",
                        "id": 28247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1462:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1449:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e35",
                      "id": 28249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1467:9:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_500000000000000000_by_1",
                        "typeString": "int_const 500000000000000000"
                      },
                      "value": "0.5"
                    },
                    "src": "1449:27:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 28251,
                  "nodeType": "ExpressionStatement",
                  "src": "1449:27:27"
                },
                {
                  "assignments": [
                    28254
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28254,
                      "mutability": "mutable",
                      "name": "defaultLaunchData",
                      "nameLocation": "1516:17:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28300,
                      "src": "1487:46:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 28253,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28252,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "1487:21:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27730,
                          "src": "1487:21:27"
                        },
                        "referencedDeclaration": 27730,
                        "src": "1487:21:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28282,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 28256,
                        "name": "supervisors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28191,
                        "src": "1571:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28260,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1610:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28259,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "1596:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28257,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1600:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28258,
                            "nodeType": "ArrayTypeName",
                            "src": "1600:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1596:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 28262,
                        "name": "unreturnedStakeBeneficiaries",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28208,
                        "src": "1626:28:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28266,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1682:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28265,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "1668:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28263,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1672:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28264,
                            "nodeType": "ArrayTypeName",
                            "src": "1672:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28267,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1668:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 28268,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28233,
                        "src": "1698:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 28269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1724:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "313030",
                        "id": 28270,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1745:3:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 28271,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1762:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 28272,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1781:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 28273,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1800:4:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "30",
                        "id": 28274,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1818:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28277,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1841:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28276,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1833:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 28275,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1833:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28278,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1833:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 28279,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1857:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "",
                        "id": 28280,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1872:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 28255,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27730,
                      "src": "1536:21:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$27730_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 28281,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1536:348:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1487:397:27"
                },
                {
                  "assignments": [
                    28285
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28285,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "1907:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28300,
                      "src": "1895:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28284,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28283,
                          "name": "PepperStake",
                          "nameLocations": [
                            "1895:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "1895:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "1895:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28297,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28289,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1950:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 28290,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28254,
                        "src": "1965:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 28291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1996:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28294,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2019:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28293,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2011:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 28292,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2011:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28295,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2011:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 28288,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1921:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 28287,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28286,
                          "name": "PepperStake",
                          "nameLocations": [
                            "1925:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "1925:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "1925:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 28296,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1921:110:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1895:136:27"
                },
                {
                  "expression": {
                    "id": 28298,
                    "name": "pepperStake",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 28285,
                    "src": "2048:11:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "functionReturnParameters": 28186,
                  "id": 28299,
                  "nodeType": "Return",
                  "src": "2041:18:27"
                }
              ]
            },
            "functionSelector": "7b5340cd",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePepperstakeContractWithDefaults",
            "nameLocation": "968:41:27",
            "parameters": {
              "id": 28182,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1009:2:27"
            },
            "returnParameters": {
              "id": 28186,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28185,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 28301,
                  "src": "1044:11:27",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_PepperStake_$27480",
                    "typeString": "contract PepperStake"
                  },
                  "typeName": {
                    "id": 28184,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28183,
                      "name": "PepperStake",
                      "nameLocations": [
                        "1044:11:27"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27480,
                      "src": "1044:11:27"
                    },
                    "referencedDeclaration": 27480,
                    "src": "1044:11:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1043:13:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28433,
            "nodeType": "FunctionDefinition",
            "src": "2072:1282:27",
            "body": {
              "id": 28432,
              "nodeType": "Block",
              "src": "2170:1184:27",
              "statements": [
                {
                  "assignments": [
                    28311
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28311,
                      "mutability": "mutable",
                      "name": "supervisors",
                      "nameLocation": "2197:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28432,
                      "src": "2180:28:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28309,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2180:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28310,
                        "nodeType": "ArrayTypeName",
                        "src": "2180:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28317,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28315,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2225:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 28314,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2211:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28312,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2215:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28313,
                        "nodeType": "ArrayTypeName",
                        "src": "2215:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 28316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2211:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2180:47:27"
                },
                {
                  "expression": {
                    "id": 28322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28318,
                        "name": "supervisors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28311,
                        "src": "2237:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 28320,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28319,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2249:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2237:14:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 28321,
                      "name": "_supervisor",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28118,
                      "src": "2254:11:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2237:28:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 28323,
                  "nodeType": "ExpressionStatement",
                  "src": "2237:28:27"
                },
                {
                  "assignments": [
                    28328
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28328,
                      "mutability": "mutable",
                      "name": "unreturnedStakeBeneficiaries",
                      "nameLocation": "2293:28:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28432,
                      "src": "2276:45:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28326,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2276:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28327,
                        "nodeType": "ArrayTypeName",
                        "src": "2276:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28334,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28332,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2338:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 28331,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2324:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28329,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2328:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28330,
                        "nodeType": "ArrayTypeName",
                        "src": "2328:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 28333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2324:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2276:64:27"
                },
                {
                  "expression": {
                    "id": 28347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28335,
                        "name": "unreturnedStakeBeneficiaries",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28328,
                        "src": "2350:28:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 28337,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2379:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2350:31:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "5065707065727374616b6544414f",
                                  "id": 28343,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2423:16:27",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d23",
                                    "typeString": "literal_string \"PepperstakeDAO\""
                                  },
                                  "value": "PepperstakeDAO"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_69c85aea3d2d0ac5bfedffcafc84f40fdd2fb68d9fbe3731608bd8f213b84d23",
                                    "typeString": "literal_string \"PepperstakeDAO\""
                                  }
                                ],
                                "id": 28342,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -8,
                                "src": "2413:9:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes memory) pure returns (bytes32)"
                                }
                              },
                              "id": 28344,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2413:27:27",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 28341,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2405:7:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes20_$",
                              "typeString": "type(bytes20)"
                            },
                            "typeName": {
                              "id": 28340,
                              "name": "bytes20",
                              "nodeType": "ElementaryTypeName",
                              "src": "2405:7:27",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 28345,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2405:36:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        ],
                        "id": 28339,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2384:7:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 28338,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2384:7:27",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 28346,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2384:67:27",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2350:101:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 28348,
                  "nodeType": "ExpressionStatement",
                  "src": "2350:101:27"
                },
                {
                  "assignments": [
                    28353
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28353,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "2479:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28432,
                      "src": "2462:29:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28351,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2462:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 28352,
                        "nodeType": "ArrayTypeName",
                        "src": "2462:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28359,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "32",
                        "id": 28357,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2508:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        }
                      ],
                      "id": 28356,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2494:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28354,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2498:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 28355,
                        "nodeType": "ArrayTypeName",
                        "src": "2498:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 28358,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2494:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2462:48:27"
                },
                {
                  "expression": {
                    "id": 28364,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28360,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28353,
                        "src": "2520:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 28362,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28361,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2533:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2520:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 28363,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2538:10:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "2520:28:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 28365,
                  "nodeType": "ExpressionStatement",
                  "src": "2520:28:27"
                },
                {
                  "expression": {
                    "id": 28370,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28366,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28353,
                        "src": "2558:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 28368,
                      "indexExpression": {
                        "hexValue": "31",
                        "id": 28367,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2571:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2558:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e35",
                      "id": 28369,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2576:9:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_500000000000000000_by_1",
                        "typeString": "int_const 500000000000000000"
                      },
                      "value": "0.5"
                    },
                    "src": "2558:27:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 28371,
                  "nodeType": "ExpressionStatement",
                  "src": "2558:27:27"
                },
                {
                  "assignments": [
                    28373
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28373,
                      "mutability": "mutable",
                      "name": "protocolFee",
                      "nameLocation": "2624:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28432,
                      "src": "2616:19:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 28372,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2616:7:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28375,
                  "initialValue": {
                    "hexValue": "31305f3030305f303030",
                    "id": 28374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2638:10:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_10000000_by_1",
                      "typeString": "int_const 10000000"
                    },
                    "value": "10_000_000"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2616:32:27"
                },
                {
                  "assignments": [
                    28377
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28377,
                      "mutability": "mutable",
                      "name": "creatorFee",
                      "nameLocation": "2666:10:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28432,
                      "src": "2658:18:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 28376,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2658:7:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28379,
                  "initialValue": {
                    "hexValue": "31305f3030305f303030",
                    "id": 28378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2679:10:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_10000000_by_1",
                      "typeString": "int_const 10000000"
                    },
                    "value": "10_000_000"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2658:31:27"
                },
                {
                  "assignments": [
                    28381
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28381,
                      "mutability": "mutable",
                      "name": "supervisorFee",
                      "nameLocation": "2707:13:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28432,
                      "src": "2699:21:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 28380,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2699:7:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28383,
                  "initialValue": {
                    "hexValue": "31305f3030305f303030",
                    "id": 28382,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2723:10:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_10000000_by_1",
                      "typeString": "int_const 10000000"
                    },
                    "value": "10_000_000"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2699:34:27"
                },
                {
                  "assignments": [
                    28386
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28386,
                      "mutability": "mutable",
                      "name": "defaultLaunchData",
                      "nameLocation": "2773:17:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28432,
                      "src": "2744:46:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 28385,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28384,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "2744:21:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27730,
                          "src": "2744:21:27"
                        },
                        "referencedDeclaration": 27730,
                        "src": "2744:21:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28414,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 28388,
                        "name": "supervisors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28311,
                        "src": "2828:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28392,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2867:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28391,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "2853:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28389,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2857:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28390,
                            "nodeType": "ArrayTypeName",
                            "src": "2857:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2853:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 28394,
                        "name": "unreturnedStakeBeneficiaries",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28328,
                        "src": "2883:28:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28398,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2939:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28397,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "2925:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28395,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2929:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28396,
                            "nodeType": "ArrayTypeName",
                            "src": "2929:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28399,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2925:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 28400,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28353,
                        "src": "2955:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 28401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2981:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "313030",
                        "id": 28402,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3002:3:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 28403,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3019:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 28404,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3038:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 28405,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3057:4:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "id": 28406,
                        "name": "creatorFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28377,
                        "src": "3075:10:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28409,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3107:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3099:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 28407,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3099:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28410,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3099:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 28411,
                        "name": "supervisorFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28381,
                        "src": "3123:13:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "",
                        "id": 28412,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3150:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 28387,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27730,
                      "src": "2793:21:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$27730_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 28413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2793:369:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2744:418:27"
                },
                {
                  "assignments": [
                    28417
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28417,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "3185:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28432,
                      "src": "3173:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28416,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28415,
                          "name": "PepperStake",
                          "nameLocations": [
                            "3173:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "3173:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "3173:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28429,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3228:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 28422,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28386,
                        "src": "3243:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "id": 28423,
                        "name": "protocolFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28373,
                        "src": "3274:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28426,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3307:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28425,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3299:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 28424,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3299:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28427,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3299:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 28420,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "3199:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 28419,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28418,
                          "name": "PepperStake",
                          "nameLocations": [
                            "3203:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "3203:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "3203:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 28428,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3199:120:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3173:146:27"
                },
                {
                  "expression": {
                    "id": 28430,
                    "name": "pepperStake",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 28417,
                    "src": "3336:11:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "functionReturnParameters": 28306,
                  "id": 28431,
                  "nodeType": "Return",
                  "src": "3329:18:27"
                }
              ]
            },
            "functionSelector": "0afd5562",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePepperstakeContractWithFees",
            "nameLocation": "2081:37:27",
            "parameters": {
              "id": 28302,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2118:2:27"
            },
            "returnParameters": {
              "id": 28306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28305,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 28433,
                  "src": "2153:11:27",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_PepperStake_$27480",
                    "typeString": "contract PepperStake"
                  },
                  "typeName": {
                    "id": 28304,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28303,
                      "name": "PepperStake",
                      "nameLocations": [
                        "2153:11:27"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27480,
                      "src": "2153:11:27"
                    },
                    "referencedDeclaration": 27480,
                    "src": "2153:11:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2152:13:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28485,
            "nodeType": "FunctionDefinition",
            "src": "3360:380:27",
            "body": {
              "id": 28484,
              "nodeType": "Block",
              "src": "3388:352:27",
              "statements": [
                {
                  "assignments": [
                    28438
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28438,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "3410:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28484,
                      "src": "3398:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28437,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28436,
                          "name": "PepperStake",
                          "nameLocations": [
                            "3398:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "3398:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "3398:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28441,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28439,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "3424:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 28440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3424:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3398:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28445,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "3486:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28442,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "3477:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3480:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "3477:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3477:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28447,
                  "nodeType": "ExpressionStatement",
                  "src": "3477:22:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28448,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28438,
                          "src": "3509:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28450,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3521:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "3509:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28452,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28451,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3534:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "3509:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28453,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3509:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28454,
                  "nodeType": "ExpressionStatement",
                  "src": "3509:38:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 28460,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 28456,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28438,
                              "src": "3564:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 28457,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3576:16:27",
                            "memberName": "participantCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26473,
                            "src": "3564:28:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 28458,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3564:30:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 28459,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3598:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "3564:35:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 28455,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "3557:6:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 28461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3557:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28462,
                  "nodeType": "ExpressionStatement",
                  "src": "3557:43:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28466,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28096,
                        "src": "3619:13:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28463,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "3610:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28465,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3613:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "3610:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3610:23:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28468,
                  "nodeType": "ExpressionStatement",
                  "src": "3610:23:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28469,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28438,
                          "src": "3643:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28471,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3655:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "3643:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e35",
                          "id": 28472,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3668:9:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_500000000000000000_by_1",
                            "typeString": "int_const 500000000000000000"
                          },
                          "value": "0.5"
                        }
                      ],
                      "src": "3643:35:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3643:37:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28475,
                  "nodeType": "ExpressionStatement",
                  "src": "3643:37:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 28481,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 28477,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28438,
                              "src": "3697:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 28478,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3709:16:27",
                            "memberName": "participantCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26473,
                            "src": "3697:28:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 28479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3697:30:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "32",
                          "id": 28480,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3731:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "src": "3697:35:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 28476,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "3690:6:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 28482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3690:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28483,
                  "nodeType": "ExpressionStatement",
                  "src": "3690:43:27"
                }
              ]
            },
            "functionSelector": "3a1143da",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStake",
            "nameLocation": "3369:9:27",
            "parameters": {
              "id": 28434,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3378:2:27"
            },
            "returnParameters": {
              "id": 28435,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3388:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28519,
            "nodeType": "FunctionDefinition",
            "src": "3746:325:27",
            "body": {
              "id": 28518,
              "nodeType": "Block",
              "src": "3789:282:27",
              "statements": [
                {
                  "assignments": [
                    28490
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28490,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "3811:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28518,
                      "src": "3799:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28489,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28488,
                          "name": "PepperStake",
                          "nameLocations": [
                            "3799:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "3799:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "3799:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28493,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28491,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "3825:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 28492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3825:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3799:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28497,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "3887:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28494,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "3878:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3881:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "3878:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3878:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28499,
                  "nodeType": "ExpressionStatement",
                  "src": "3878:22:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 28505,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "3962:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 28506,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3974:22:27",
                              "memberName": "INCORRECT_STAKE_AMOUNT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26398,
                              "src": "3962:34:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 28507,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3997:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "3962:43:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 28503,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "3939:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 28504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "3943:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "3939:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 28508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3939:67:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 28500,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "3910:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28502,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3913:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "3910:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 28509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3910:106:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28510,
                  "nodeType": "ExpressionStatement",
                  "src": "3910:106:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28511,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28490,
                          "src": "4026:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4038:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "4026:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28515,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3034",
                          "id": 28514,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4051:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_40000000000000000_by_1",
                            "typeString": "int_const 40000000000000000"
                          },
                          "value": "0.04"
                        }
                      ],
                      "src": "4026:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4026:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28517,
                  "nodeType": "ExpressionStatement",
                  "src": "4026:38:27"
                }
              ]
            },
            "functionSelector": "3a1a8594",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStakeIncorrectAmount",
            "nameLocation": "3755:24:27",
            "parameters": {
              "id": 28486,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3779:2:27"
            },
            "returnParameters": {
              "id": 28487,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3789:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28560,
            "nodeType": "FunctionDefinition",
            "src": "4077:382:27",
            "body": {
              "id": 28559,
              "nodeType": "Block",
              "src": "4125:334:27",
              "statements": [
                {
                  "assignments": [
                    28524
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28524,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "4147:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28559,
                      "src": "4135:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28523,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28522,
                          "name": "PepperStake",
                          "nameLocations": [
                            "4135:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "4135:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "4135:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28527,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28525,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "4161:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 28526,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4161:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4135:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28531,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "4228:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28528,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "4214:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28530,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4217:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "4214:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28532,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4214:27:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28533,
                  "nodeType": "ExpressionStatement",
                  "src": "4214:27:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28534,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28524,
                          "src": "4251:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28536,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4263:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "4251:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28538,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28537,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4276:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "4251:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4251:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28540,
                  "nodeType": "ExpressionStatement",
                  "src": "4251:38:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 28546,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "4351:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 28547,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4363:21:27",
                              "memberName": "ALREADY_PARTICIPATING",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26400,
                              "src": "4351:33:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 28548,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4385:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "4351:42:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 28544,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "4328:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 28545,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "4332:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "4328:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 28549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4328:66:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 28541,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "4299:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28543,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4302:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "4299:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 28550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4299:105:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28551,
                  "nodeType": "ExpressionStatement",
                  "src": "4299:105:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28552,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28524,
                          "src": "4414:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28554,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4426:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "4414:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28556,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28555,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4439:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "4414:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28557,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4414:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28558,
                  "nodeType": "ExpressionStatement",
                  "src": "4414:38:27"
                }
              ]
            },
            "functionSelector": "523a6ee8",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStakeAlreadyParticipating",
            "nameLocation": "4086:29:27",
            "parameters": {
              "id": 28520,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4115:2:27"
            },
            "returnParameters": {
              "id": 28521,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4125:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28659,
            "nodeType": "FunctionDefinition",
            "src": "4465:918:27",
            "body": {
              "id": 28658,
              "nodeType": "Block",
              "src": "4515:868:27",
              "statements": [
                {
                  "assignments": [
                    28567
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28567,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "4542:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28658,
                      "src": "4525:29:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28565,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4525:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 28566,
                        "nodeType": "ArrayTypeName",
                        "src": "4525:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28573,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28571,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4571:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 28570,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "4557:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28568,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4561:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 28569,
                        "nodeType": "ArrayTypeName",
                        "src": "4561:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 28572,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4557:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4525:48:27"
                },
                {
                  "expression": {
                    "id": 28578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28574,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28567,
                        "src": "4583:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 28576,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28575,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4596:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4583:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 28577,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4601:10:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "4583:28:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 28579,
                  "nodeType": "ExpressionStatement",
                  "src": "4583:28:27"
                },
                {
                  "assignments": [
                    28582
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28582,
                      "mutability": "mutable",
                      "name": "launchData",
                      "nameLocation": "4650:10:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28658,
                      "src": "4621:39:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 28581,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28580,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "4621:21:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27730,
                          "src": "4621:21:27"
                        },
                        "referencedDeclaration": 27730,
                        "src": "4621:21:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28618,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28587,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4712:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28586,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "4698:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28584,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "4702:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28585,
                            "nodeType": "ArrayTypeName",
                            "src": "4702:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28588,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4698:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28592,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4742:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "4728:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28589,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "4732:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28590,
                            "nodeType": "ArrayTypeName",
                            "src": "4732:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28593,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4728:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28597,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4772:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28596,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "4758:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28594,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "4762:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28595,
                            "nodeType": "ArrayTypeName",
                            "src": "4762:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28598,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4758:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28602,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4802:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28601,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "4788:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28599,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "4792:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28600,
                            "nodeType": "ArrayTypeName",
                            "src": "4792:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28603,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4788:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 28604,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28567,
                        "src": "4818:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 28605,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4844:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "30",
                        "id": 28606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4865:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 28607,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4880:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 28608,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4899:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 28609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4918:4:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "30",
                        "id": 28610,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4936:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28613,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4959:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4951:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 28611,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "4951:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28614,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4951:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 28615,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4975:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "",
                        "id": 28616,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4990:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 28583,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27730,
                      "src": "4663:21:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$27730_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 28617,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4663:339:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4621:381:27"
                },
                {
                  "assignments": [
                    28621
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28621,
                      "mutability": "mutable",
                      "name": "pepperStake2",
                      "nameLocation": "5024:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28658,
                      "src": "5012:24:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28620,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28619,
                          "name": "PepperStake",
                          "nameLocations": [
                            "5012:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "5012:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "5012:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28633,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5068:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 28626,
                        "name": "launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28582,
                        "src": "5083:10:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 28627,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5107:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28630,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5130:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28629,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5122:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 28628,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5122:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28631,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5122:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 28624,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "5039:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 28623,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28622,
                          "name": "PepperStake",
                          "nameLocations": [
                            "5043:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "5043:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "5043:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 28632,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5039:103:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5012:130:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28637,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "5166:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28634,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "5152:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28636,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5155:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "5152:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28638,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5152:27:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28639,
                  "nodeType": "ExpressionStatement",
                  "src": "5152:27:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 28645,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "5258:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 28646,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5270:24:27",
                              "memberName": "MAX_PARTICIPANTS_REACHED",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26394,
                              "src": "5258:36:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 28647,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5295:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "5258:45:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 28643,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "5218:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 28644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "5222:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "5218:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 28648,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5218:99:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 28640,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "5189:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28642,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5192:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "5189:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 28649,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5189:138:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28650,
                  "nodeType": "ExpressionStatement",
                  "src": "5189:138:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28651,
                          "name": "pepperStake2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28621,
                          "src": "5337:12:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28653,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5350:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "5337:18:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28655,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28654,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5363:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "5337:37:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28656,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5337:39:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28657,
                  "nodeType": "ExpressionStatement",
                  "src": "5337:39:27"
                }
              ]
            },
            "functionSelector": "281fef2f",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStakeMaxParticipantsReached",
            "nameLocation": "4474:31:27",
            "parameters": {
              "id": 28561,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4505:2:27"
            },
            "returnParameters": {
              "id": 28562,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4515:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28785,
            "nodeType": "FunctionDefinition",
            "src": "5389:1102:27",
            "body": {
              "id": 28784,
              "nodeType": "Block",
              "src": "5432:1059:27",
              "statements": [
                {
                  "assignments": [
                    28666
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28666,
                      "mutability": "mutable",
                      "name": "participantAllowList",
                      "nameLocation": "5459:20:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28784,
                      "src": "5442:37:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28664,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5442:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28665,
                        "nodeType": "ArrayTypeName",
                        "src": "5442:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28672,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28670,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5496:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 28669,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "5482:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28667,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5486:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28668,
                        "nodeType": "ArrayTypeName",
                        "src": "5486:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 28671,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5482:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5442:56:27"
                },
                {
                  "expression": {
                    "id": 28677,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28673,
                        "name": "participantAllowList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28666,
                        "src": "5508:20:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 28675,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28674,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5529:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5508:23:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 28676,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28085,
                      "src": "5534:12:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "5508:38:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 28678,
                  "nodeType": "ExpressionStatement",
                  "src": "5508:38:27"
                },
                {
                  "assignments": [
                    28683
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28683,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "5574:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28784,
                      "src": "5557:29:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28681,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5557:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 28682,
                        "nodeType": "ArrayTypeName",
                        "src": "5557:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28689,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28687,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5603:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 28686,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "5589:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28684,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5593:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 28685,
                        "nodeType": "ArrayTypeName",
                        "src": "5593:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 28688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5589:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5557:48:27"
                },
                {
                  "expression": {
                    "id": 28694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28690,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28683,
                        "src": "5615:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 28692,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28691,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5628:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5615:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 28693,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5633:10:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "5615:28:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 28695,
                  "nodeType": "ExpressionStatement",
                  "src": "5615:28:27"
                },
                {
                  "assignments": [
                    28698
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28698,
                      "mutability": "mutable",
                      "name": "launchData",
                      "nameLocation": "5683:10:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28784,
                      "src": "5654:39:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 28697,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28696,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "5654:21:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27730,
                          "src": "5654:21:27"
                        },
                        "referencedDeclaration": 27730,
                        "src": "5654:21:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28731,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28703,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5745:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28702,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "5731:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28700,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "5735:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28701,
                            "nodeType": "ArrayTypeName",
                            "src": "5735:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28704,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5731:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 28705,
                        "name": "participantAllowList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28666,
                        "src": "5761:20:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28709,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5809:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "5795:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28706,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "5799:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28707,
                            "nodeType": "ArrayTypeName",
                            "src": "5799:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28710,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5795:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28714,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5839:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28713,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "5825:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 28711,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "5829:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 28712,
                            "nodeType": "ArrayTypeName",
                            "src": "5829:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 28715,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5825:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 28716,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28683,
                        "src": "5855:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 28717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5881:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "expression": {
                          "id": 28718,
                          "name": "participantAllowList",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28666,
                          "src": "5902:20:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        "id": 28719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5923:6:27",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "5902:27:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "74727565",
                        "id": 28720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5943:4:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 28721,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5961:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 28722,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5980:4:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "30",
                        "id": 28723,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5998:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28726,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6021:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28725,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6013:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 28724,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "6013:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28727,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6013:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 28728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6037:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "",
                        "id": 28729,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6052:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 28699,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27730,
                      "src": "5696:21:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$27730_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 28730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5696:368:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5654:410:27"
                },
                {
                  "assignments": [
                    28734
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28734,
                      "mutability": "mutable",
                      "name": "pepperStake3",
                      "nameLocation": "6086:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28784,
                      "src": "6074:24:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28733,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28732,
                          "name": "PepperStake",
                          "nameLocations": [
                            "6074:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "6074:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "6074:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28746,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28738,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6130:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 28739,
                        "name": "launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28698,
                        "src": "6145:10:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 28740,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6169:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 28743,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6192:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 28742,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6184:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 28741,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "6184:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6184:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 28737,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "6101:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 28736,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28735,
                          "name": "PepperStake",
                          "nameLocations": [
                            "6105:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "6105:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "6105:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 28745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6101:103:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6074:130:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28750,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "6223:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28747,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6214:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28749,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6217:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "6214:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28751,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6214:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28752,
                  "nodeType": "ExpressionStatement",
                  "src": "6214:22:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28753,
                          "name": "pepperStake3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28734,
                          "src": "6246:12:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28755,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6259:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "6246:18:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28757,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6272:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "6246:37:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6246:39:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28759,
                  "nodeType": "ExpressionStatement",
                  "src": "6246:39:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28763,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28096,
                        "src": "6304:13:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28760,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6295:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28762,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6298:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "6295:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28764,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6295:23:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28765,
                  "nodeType": "ExpressionStatement",
                  "src": "6295:23:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 28771,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "6380:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 28772,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6392:23:27",
                              "memberName": "PARTICIPANT_NOT_ALLOWED",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26396,
                              "src": "6380:35:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 28773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6416:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "6380:44:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 28769,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "6357:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 28770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "6361:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "6357:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 28774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6357:68:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 28766,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6328:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28768,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6331:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "6328:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 28775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6328:107:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28776,
                  "nodeType": "ExpressionStatement",
                  "src": "6328:107:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28777,
                          "name": "pepperStake3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28734,
                          "src": "6445:12:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28779,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6458:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "6445:18:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28780,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6471:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "6445:37:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6445:39:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28783,
                  "nodeType": "ExpressionStatement",
                  "src": "6445:39:27"
                }
              ]
            },
            "functionSelector": "1fc168ee",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testParticipantAllowList",
            "nameLocation": "5398:24:27",
            "parameters": {
              "id": 28660,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5422:2:27"
            },
            "returnParameters": {
              "id": 28661,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5432:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28825,
            "nodeType": "FunctionDefinition",
            "src": "6497:357:27",
            "body": {
              "id": 28824,
              "nodeType": "Block",
              "src": "6541:313:27",
              "statements": [
                {
                  "assignments": [
                    28790
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28790,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "6563:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28824,
                      "src": "6551:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28789,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28788,
                          "name": "PepperStake",
                          "nameLocations": [
                            "6551:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "6551:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "6551:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28793,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28791,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "6577:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 28792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6577:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6551:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 28797,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6638:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 28794,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6630:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28796,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6633:4:27",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "6630:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 28798,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6630:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28799,
                  "nodeType": "ExpressionStatement",
                  "src": "6630:16:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28803,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "6670:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28800,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6656:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28802,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6659:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "6656:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28804,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6656:27:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28805,
                  "nodeType": "ExpressionStatement",
                  "src": "6656:27:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 28811,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "6745:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 28812,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6757:22:27",
                              "memberName": "COMPLETION_WINDOW_OVER",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26404,
                              "src": "6745:34:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 28813,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6780:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "6745:43:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 28809,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "6722:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 28810,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "6726:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "6722:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 28814,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6722:67:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 28806,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6693:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28808,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6696:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "6693:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 28815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6693:106:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28816,
                  "nodeType": "ExpressionStatement",
                  "src": "6693:106:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28817,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28790,
                          "src": "6809:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28819,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6821:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "6809:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6834:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "6809:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28822,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6809:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28823,
                  "nodeType": "ExpressionStatement",
                  "src": "6809:38:27"
                }
              ]
            },
            "functionSelector": "e608f5bf",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testStakeReturnWindowOver",
            "nameLocation": "6506:25:27",
            "parameters": {
              "id": 28786,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6531:2:27"
            },
            "returnParameters": {
              "id": 28787,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6541:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28871,
            "nodeType": "FunctionDefinition",
            "src": "6860:388:27",
            "body": {
              "id": 28870,
              "nodeType": "Block",
              "src": "6890:358:27",
              "statements": [
                {
                  "assignments": [
                    28830
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28830,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "6912:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28870,
                      "src": "6900:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28829,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28828,
                          "name": "PepperStake",
                          "nameLocations": [
                            "6900:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "6900:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "6900:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28833,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28831,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "6926:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 28832,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6926:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6900:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28837,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28107,
                        "src": "6993:8:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28834,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "6979:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28836,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6982:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "6979:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6979:23:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28839,
                  "nodeType": "ExpressionStatement",
                  "src": "6979:23:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28840,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28830,
                          "src": "7012:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28842,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7024:7:27",
                        "memberName": "sponsor",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26916,
                        "src": "7012:19:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28844,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28843,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7039:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "7012:38:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28845,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7012:40:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28846,
                  "nodeType": "ExpressionStatement",
                  "src": "7012:40:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 28852,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 28848,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28830,
                              "src": "7069:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 28849,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7081:24:27",
                            "memberName": "totalSponsorContribution",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26477,
                            "src": "7069:36:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 28850,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7069:38:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "302e3035",
                          "id": 28851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7111:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        },
                        "src": "7069:52:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 28847,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "7062:6:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 28853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7062:60:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28854,
                  "nodeType": "ExpressionStatement",
                  "src": "7062:60:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28855,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28830,
                          "src": "7132:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7144:7:27",
                        "memberName": "sponsor",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26916,
                        "src": "7132:19:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28859,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28858,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7159:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "7132:38:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28860,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7132:40:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28861,
                  "nodeType": "ExpressionStatement",
                  "src": "7132:40:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 28867,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 28863,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28830,
                              "src": "7189:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 28864,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7201:24:27",
                            "memberName": "totalSponsorContribution",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26477,
                            "src": "7189:36:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 28865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7189:38:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "302e31",
                          "id": 28866,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7231:9:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_100000000000000000_by_1",
                            "typeString": "int_const 100000000000000000"
                          },
                          "value": "0.1"
                        },
                        "src": "7189:51:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 28862,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "7182:6:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 28868,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7182:59:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28869,
                  "nodeType": "ExpressionStatement",
                  "src": "7182:59:27"
                }
              ]
            },
            "functionSelector": "0d930ecd",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testSponsor",
            "nameLocation": "6869:11:27",
            "parameters": {
              "id": 28826,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6880:2:27"
            },
            "returnParameters": {
              "id": 28827,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6890:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28911,
            "nodeType": "FunctionDefinition",
            "src": "7254:357:27",
            "body": {
              "id": 28910,
              "nodeType": "Block",
              "src": "7300:311:27",
              "statements": [
                {
                  "assignments": [
                    28876
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28876,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "7322:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28910,
                      "src": "7310:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28875,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28874,
                          "name": "PepperStake",
                          "nameLocations": [
                            "7310:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "7310:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "7310:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28879,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28877,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "7336:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 28878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7336:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7310:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 28883,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7397:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 28880,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7389:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28882,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7392:4:27",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "7389:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 28884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7389:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28885,
                  "nodeType": "ExpressionStatement",
                  "src": "7389:16:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28889,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28107,
                        "src": "7429:8:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28886,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7415:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28888,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7418:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "7415:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28890,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7415:23:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28891,
                  "nodeType": "ExpressionStatement",
                  "src": "7415:23:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 28897,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "7500:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 28898,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7512:22:27",
                              "memberName": "COMPLETION_WINDOW_OVER",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26404,
                              "src": "7500:34:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 28899,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7535:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "7500:43:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 28895,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "7477:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 28896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "7481:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "7477:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 28900,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7477:67:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 28892,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7448:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28894,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7451:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "7448:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 28901,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7448:106:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28902,
                  "nodeType": "ExpressionStatement",
                  "src": "7448:106:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28903,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28876,
                          "src": "7564:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28905,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7576:7:27",
                        "memberName": "sponsor",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26916,
                        "src": "7564:19:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28907,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28906,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7591:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "7564:38:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7564:40:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28909,
                  "nodeType": "ExpressionStatement",
                  "src": "7564:40:27"
                }
              ]
            },
            "functionSelector": "7d28054b",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testSponsorReturnWindowOver",
            "nameLocation": "7263:27:27",
            "parameters": {
              "id": 28872,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7290:2:27"
            },
            "returnParameters": {
              "id": 28873,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7300:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 28971,
            "nodeType": "FunctionDefinition",
            "src": "7617:500:27",
            "body": {
              "id": 28970,
              "nodeType": "Block",
              "src": "7662:455:27",
              "statements": [
                {
                  "assignments": [
                    28916
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28916,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "7684:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28970,
                      "src": "7672:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28915,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28914,
                          "name": "PepperStake",
                          "nameLocations": [
                            "7672:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "7672:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "7672:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28919,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28917,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "7698:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 28918,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7698:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7672:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28923,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "7760:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28920,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7751:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28922,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7754:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "7751:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28924,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7751:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28925,
                  "nodeType": "ExpressionStatement",
                  "src": "7751:22:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28926,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28916,
                          "src": "7783:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28928,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7795:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "7783:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28930,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28929,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7808:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "7783:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7783:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28932,
                  "nodeType": "ExpressionStatement",
                  "src": "7783:38:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28936,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "7840:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28933,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "7831:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28935,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7834:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "7831:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7831:21:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28938,
                  "nodeType": "ExpressionStatement",
                  "src": "7831:21:27"
                },
                {
                  "assignments": [
                    28943
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28943,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "7879:25:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 28970,
                      "src": "7862:42:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28941,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7862:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28942,
                        "nodeType": "ArrayTypeName",
                        "src": "7862:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28949,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 28947,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7921:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 28946,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "7907:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 28944,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7911:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 28945,
                        "nodeType": "ArrayTypeName",
                        "src": "7911:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 28948,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7907:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7862:61:27"
                },
                {
                  "expression": {
                    "id": 28954,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 28950,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28943,
                        "src": "7933:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 28952,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 28951,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7959:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7933:28:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 28953,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28085,
                      "src": "7964:12:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "7933:43:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 28955,
                  "nodeType": "ExpressionStatement",
                  "src": "7933:43:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28959,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28943,
                        "src": "8021:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 28956,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28916,
                        "src": "7986:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 28958,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7998:22:27",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27095,
                      "src": "7986:34:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 28960,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7986:61:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28961,
                  "nodeType": "ExpressionStatement",
                  "src": "7986:61:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 28967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 28963,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28916,
                              "src": "8064:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 28964,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8076:26:27",
                            "memberName": "completingParticipantCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26475,
                            "src": "8064:38:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 28965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8064:40:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 28966,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8108:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "8064:45:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 28962,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "8057:6:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 28968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8057:53:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28969,
                  "nodeType": "ExpressionStatement",
                  "src": "8057:53:27"
                }
              ]
            },
            "functionSelector": "0bb3f8f1",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testApproveForParticipants",
            "nameLocation": "7626:26:27",
            "parameters": {
              "id": 28912,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7652:2:27"
            },
            "returnParameters": {
              "id": 28913,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7662:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29040,
            "nodeType": "FunctionDefinition",
            "src": "8123:579:27",
            "body": {
              "id": 29039,
              "nodeType": "Block",
              "src": "8163:539:27",
              "statements": [
                {
                  "assignments": [
                    28976
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 28976,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "8185:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29039,
                      "src": "8173:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 28975,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 28974,
                          "name": "PepperStake",
                          "nameLocations": [
                            "8173:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "8173:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "8173:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 28979,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 28977,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "8199:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 28978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8199:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8173:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28983,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "8261:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 28980,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8252:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8255:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "8252:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 28984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8252:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28985,
                  "nodeType": "ExpressionStatement",
                  "src": "8252:22:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 28986,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28976,
                          "src": "8284:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 28988,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8296:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "8284:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 28990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 28989,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8309:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "8284:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 28991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8284:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28992,
                  "nodeType": "ExpressionStatement",
                  "src": "8284:38:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 28996,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8340:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 28993,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8332:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 28995,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8335:4:27",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "8332:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 28997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8332:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28998,
                  "nodeType": "ExpressionStatement",
                  "src": "8332:16:27"
                },
                {
                  "assignments": [
                    29003
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29003,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "8375:25:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29039,
                      "src": "8358:42:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29001,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8358:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29002,
                        "nodeType": "ArrayTypeName",
                        "src": "8358:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29009,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29007,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8417:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 29006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "8403:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29004,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8407:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29005,
                        "nodeType": "ArrayTypeName",
                        "src": "8407:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 29008,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8403:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8358:61:27"
                },
                {
                  "expression": {
                    "id": 29014,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 29010,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29003,
                        "src": "8429:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 29012,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 29011,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8455:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "8429:28:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 29013,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28085,
                      "src": "8460:12:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "8429:43:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 29015,
                  "nodeType": "ExpressionStatement",
                  "src": "8429:43:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29019,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "8496:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29016,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8482:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29018,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8485:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "8482:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8482:26:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29021,
                  "nodeType": "ExpressionStatement",
                  "src": "8482:26:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 29027,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "8570:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 29028,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8582:22:27",
                              "memberName": "COMPLETION_WINDOW_OVER",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26404,
                              "src": "8570:34:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 29029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8605:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "8570:43:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 29025,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "8547:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 29026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "8551:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "8547:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 29030,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8547:67:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 29022,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8518:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8521:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "8518:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 29031,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8518:106:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29032,
                  "nodeType": "ExpressionStatement",
                  "src": "8518:106:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29036,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29003,
                        "src": "8669:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 29033,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28976,
                        "src": "8634:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 29035,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8646:22:27",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27095,
                      "src": "8634:34:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 29037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8634:61:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29038,
                  "nodeType": "ExpressionStatement",
                  "src": "8634:61:27"
                }
              ]
            },
            "functionSelector": "51e79748",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testApproveWindowOver",
            "nameLocation": "8132:21:27",
            "parameters": {
              "id": 28972,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8153:2:27"
            },
            "returnParameters": {
              "id": 28973,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8163:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29111,
            "nodeType": "FunctionDefinition",
            "src": "8708:584:27",
            "body": {
              "id": 29110,
              "nodeType": "Block",
              "src": "8756:536:27",
              "statements": [
                {
                  "assignments": [
                    29045
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29045,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "8778:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29110,
                      "src": "8766:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 29044,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29043,
                          "name": "PepperStake",
                          "nameLocations": [
                            "8766:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "8766:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "8766:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29048,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 29046,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "8792:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 29047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8792:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8766:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29052,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "8854:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29049,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "8845:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29051,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8848:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "8845:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8845:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29054,
                  "nodeType": "ExpressionStatement",
                  "src": "8845:22:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 29055,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29045,
                          "src": "8877:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 29057,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8889:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "8877:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 29059,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 29058,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8902:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "8877:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 29060,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8877:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29061,
                  "nodeType": "ExpressionStatement",
                  "src": "8877:38:27"
                },
                {
                  "assignments": [
                    29066
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29066,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "8942:25:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29110,
                      "src": "8925:42:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29064,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8925:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29065,
                        "nodeType": "ArrayTypeName",
                        "src": "8925:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29072,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29070,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8984:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 29069,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "8970:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29067,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8974:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29068,
                        "nodeType": "ArrayTypeName",
                        "src": "8974:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 29071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8970:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8925:61:27"
                },
                {
                  "expression": {
                    "id": 29085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 29073,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29066,
                        "src": "8996:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 29075,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 29074,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9022:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "8996:28:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "696e76616c6964",
                                  "id": 29081,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9053:9:27",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_ffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac68",
                                    "typeString": "literal_string \"invalid\""
                                  },
                                  "value": "invalid"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_ffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac68",
                                    "typeString": "literal_string \"invalid\""
                                  }
                                ],
                                "id": 29080,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -8,
                                "src": "9043:9:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes memory) pure returns (bytes32)"
                                }
                              },
                              "id": 29082,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9043:20:27",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 29079,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9035:7:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes20_$",
                              "typeString": "type(bytes20)"
                            },
                            "typeName": {
                              "id": 29078,
                              "name": "bytes20",
                              "nodeType": "ElementaryTypeName",
                              "src": "9035:7:27",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 29083,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9035:29:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        ],
                        "id": 29077,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9027:7:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 29076,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9027:7:27",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 29084,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9027:38:27",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "8996:69:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 29086,
                  "nodeType": "ExpressionStatement",
                  "src": "8996:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29090,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "9089:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29087,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9075:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29089,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9078:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "9075:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9075:26:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29092,
                  "nodeType": "ExpressionStatement",
                  "src": "9075:26:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 29098,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "9163:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 29099,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9175:19:27",
                              "memberName": "INVALID_PARTICIPANT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26410,
                              "src": "9163:31:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 29100,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9195:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "9163:40:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 29096,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "9140:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 29097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "9144:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "9140:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 29101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9140:64:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 29093,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9111:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29095,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9114:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "9111:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 29102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9111:103:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29103,
                  "nodeType": "ExpressionStatement",
                  "src": "9111:103:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29107,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29066,
                        "src": "9259:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 29104,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29045,
                        "src": "9224:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 29106,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9236:22:27",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27095,
                      "src": "9224:34:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 29108,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9224:61:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29109,
                  "nodeType": "ExpressionStatement",
                  "src": "9224:61:27"
                }
              ]
            },
            "functionSelector": "2f647527",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testApproveInvalidParticipant",
            "nameLocation": "8717:29:27",
            "parameters": {
              "id": 29041,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8746:2:27"
            },
            "returnParameters": {
              "id": 29042,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8756:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29165,
            "nodeType": "FunctionDefinition",
            "src": "9298:446:27",
            "body": {
              "id": 29164,
              "nodeType": "Block",
              "src": "9337:407:27",
              "statements": [
                {
                  "assignments": [
                    29116
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29116,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "9359:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29164,
                      "src": "9347:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 29115,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29114,
                          "name": "PepperStake",
                          "nameLocations": [
                            "9347:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "9347:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "9347:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29119,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 29117,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "9373:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 29118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9373:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9347:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29123,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "9435:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29120,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9426:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9429:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "9426:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29124,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9426:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29125,
                  "nodeType": "ExpressionStatement",
                  "src": "9426:22:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 29126,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29116,
                          "src": "9458:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 29128,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9470:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "9458:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 29130,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 29129,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9483:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "9458:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 29131,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9458:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29132,
                  "nodeType": "ExpressionStatement",
                  "src": "9458:38:27"
                },
                {
                  "assignments": [
                    29137
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29137,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "9523:25:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29164,
                      "src": "9506:42:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29135,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9506:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29136,
                        "nodeType": "ArrayTypeName",
                        "src": "9506:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29143,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "30",
                        "id": 29141,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9565:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 29140,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "9551:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29138,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9555:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29139,
                        "nodeType": "ArrayTypeName",
                        "src": "9555:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 29142,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9551:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9506:61:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29147,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "9591:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29144,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9577:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9580:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "9577:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29148,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9577:26:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29149,
                  "nodeType": "ExpressionStatement",
                  "src": "9577:26:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29153,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29137,
                        "src": "9648:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 29150,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29116,
                        "src": "9613:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 29152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9625:22:27",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27095,
                      "src": "9613:34:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 29154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9613:61:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29155,
                  "nodeType": "ExpressionStatement",
                  "src": "9613:61:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 29161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 29157,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 29116,
                              "src": "9691:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 29158,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9703:26:27",
                            "memberName": "completingParticipantCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26475,
                            "src": "9691:38:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 29159,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9691:40:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 29160,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9735:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "9691:45:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 29156,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "9684:6:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 29162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9684:53:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29163,
                  "nodeType": "ExpressionStatement",
                  "src": "9684:53:27"
                }
              ]
            },
            "functionSelector": "ac6a4242",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testApproveEmptyList",
            "nameLocation": "9307:20:27",
            "parameters": {
              "id": 29112,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9327:2:27"
            },
            "returnParameters": {
              "id": 29113,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9337:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29290,
            "nodeType": "FunctionDefinition",
            "src": "9750:1121:27",
            "body": {
              "id": 29289,
              "nodeType": "Block",
              "src": "9805:1066:27",
              "statements": [
                {
                  "assignments": [
                    29170
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29170,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "9827:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29289,
                      "src": "9815:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 29169,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29168,
                          "name": "PepperStake",
                          "nameLocations": [
                            "9815:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "9815:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "9815:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29173,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 29171,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "9841:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 29172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9841:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9815:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29177,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "9903:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29174,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9894:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9897:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "9894:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29178,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9894:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29179,
                  "nodeType": "ExpressionStatement",
                  "src": "9894:22:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 29180,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29170,
                          "src": "9926:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 29182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9938:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "9926:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 29184,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 29183,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9951:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "9926:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 29185,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9926:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29186,
                  "nodeType": "ExpressionStatement",
                  "src": "9926:38:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29190,
                        "name": "_participant2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28096,
                        "src": "9983:13:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29187,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "9974:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29189,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9977:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "9974:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9974:23:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29192,
                  "nodeType": "ExpressionStatement",
                  "src": "9974:23:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 29193,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29170,
                          "src": "10007:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 29195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10019:5:27",
                        "memberName": "stake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26892,
                        "src": "10007:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 29197,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 29196,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10032:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "10007:36:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 29198,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10007:38:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29199,
                  "nodeType": "ExpressionStatement",
                  "src": "10007:38:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29203,
                        "name": "_sponsor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28107,
                        "src": "10064:8:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29200,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10055:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29202,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10058:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "10055:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10055:18:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29205,
                  "nodeType": "ExpressionStatement",
                  "src": "10055:18:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 29206,
                          "name": "pepperStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29170,
                          "src": "10083:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        },
                        "id": 29208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10095:7:27",
                        "memberName": "sponsor",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26916,
                        "src": "10083:19:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 29210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 29209,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10110:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "10083:38:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 29211,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10083:40:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29212,
                  "nodeType": "ExpressionStatement",
                  "src": "10083:40:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 29216,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 29170,
                              "src": "10163:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            ],
                            "id": 29215,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10155:7:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 29214,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "10155:7:27",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 29217,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10155:20:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29218,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10176:7:27",
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "src": "10155:28:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "302e3135",
                        "id": 29219,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10197:10:27",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_150000000000000000_by_1",
                          "typeString": "int_const 150000000000000000"
                        },
                        "value": "0.15"
                      },
                      {
                        "hexValue": "62616c616e6365206973206e6f7420302e3135206574686572",
                        "id": 29220,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10221:27:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ea4047aab45f25908de2e51202a5d391062dcf6d0317a44378aaa254c42df204",
                          "typeString": "literal_string \"balance is not 0.15 ether\""
                        },
                        "value": "balance is not 0.15 ether"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_150000000000000000_by_1",
                          "typeString": "int_const 150000000000000000"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ea4047aab45f25908de2e51202a5d391062dcf6d0317a44378aaa254c42df204",
                          "typeString": "literal_string \"balance is not 0.15 ether\""
                        }
                      ],
                      "id": 29213,
                      "name": "assertEq",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1980,
                        2005,
                        2018,
                        2034,
                        2076,
                        2118,
                        2160,
                        2197,
                        2234,
                        2271,
                        320,
                        345,
                        375,
                        400,
                        459,
                        484,
                        514,
                        539,
                        1639,
                        1674
                      ],
                      "referencedDeclaration": 539,
                      "src": "10133:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,string memory)"
                      }
                    },
                    "id": 29221,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10133:125:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29222,
                  "nodeType": "ExpressionStatement",
                  "src": "10133:125:27"
                },
                {
                  "assignments": [
                    29227
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29227,
                      "mutability": "mutable",
                      "name": "completingParticipantList",
                      "nameLocation": "10285:25:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29289,
                      "src": "10268:42:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29225,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "10268:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29226,
                        "nodeType": "ArrayTypeName",
                        "src": "10268:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29233,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29231,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10327:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 29230,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "10313:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29228,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "10317:7:27",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29229,
                        "nodeType": "ArrayTypeName",
                        "src": "10317:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 29232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10313:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10268:61:27"
                },
                {
                  "expression": {
                    "id": 29238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 29234,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29227,
                        "src": "10339:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 29236,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 29235,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10365:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10339:28:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 29237,
                      "name": "_participant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28085,
                      "src": "10370:12:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10339:43:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 29239,
                  "nodeType": "ExpressionStatement",
                  "src": "10339:43:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29243,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "10401:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29240,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10392:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29242,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10395:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "10392:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10392:21:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29245,
                  "nodeType": "ExpressionStatement",
                  "src": "10392:21:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29249,
                        "name": "completingParticipantList",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29227,
                        "src": "10458:25:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 29246,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29170,
                        "src": "10423:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 29248,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10435:22:27",
                      "memberName": "approveForParticipants",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27095,
                      "src": "10423:34:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory) external"
                      }
                    },
                    "id": 29250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10423:61:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29251,
                  "nodeType": "ExpressionStatement",
                  "src": "10423:61:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 29255,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 29170,
                              "src": "10524:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            ],
                            "id": 29254,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10516:7:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 29253,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "10516:7:27",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 29256,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10516:20:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10537:7:27",
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "src": "10516:28:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "302e31",
                        "id": 29258,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10558:9:27",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000_by_1",
                          "typeString": "int_const 100000000000000000"
                        },
                        "value": "0.1"
                      },
                      {
                        "hexValue": "62616c616e6365206973206e6f7420302e31206574686572",
                        "id": 29259,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10581:26:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f91b4b2f247a8d3fa7a481fdcd8f731f28781f141e41a2edfde37e49173d7e35",
                          "typeString": "literal_string \"balance is not 0.1 ether\""
                        },
                        "value": "balance is not 0.1 ether"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_100000000000000000_by_1",
                          "typeString": "int_const 100000000000000000"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f91b4b2f247a8d3fa7a481fdcd8f731f28781f141e41a2edfde37e49173d7e35",
                          "typeString": "literal_string \"balance is not 0.1 ether\""
                        }
                      ],
                      "id": 29252,
                      "name": "assertEq",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1980,
                        2005,
                        2018,
                        2034,
                        2076,
                        2118,
                        2160,
                        2197,
                        2234,
                        2271,
                        320,
                        345,
                        375,
                        400,
                        459,
                        484,
                        514,
                        539,
                        1639,
                        1674
                      ],
                      "referencedDeclaration": 539,
                      "src": "10494:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,string memory)"
                      }
                    },
                    "id": 29260,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10494:123:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29261,
                  "nodeType": "ExpressionStatement",
                  "src": "10494:123:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 29265,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10635:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 29262,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10627:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29264,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10630:4:27",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "10627:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 29266,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10627:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29267,
                  "nodeType": "ExpressionStatement",
                  "src": "10627:16:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29271,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "10667:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29268,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "10653:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29270,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10656:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "10653:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29272,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10653:26:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29273,
                  "nodeType": "ExpressionStatement",
                  "src": "10653:26:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 29274,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29170,
                        "src": "10689:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 29276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10701:32:27",
                      "memberName": "postCompletionWindowDistribution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27479,
                      "src": "10689:44:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 29277,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10689:46:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29278,
                  "nodeType": "ExpressionStatement",
                  "src": "10689:46:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 29282,
                              "name": "pepperStake",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 29170,
                              "src": "10775:11:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            ],
                            "id": 29281,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10767:7:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 29280,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "10767:7:27",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 29283,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10767:20:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 29284,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10788:7:27",
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "src": "10767:28:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 29285,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10809:7:27",
                        "subdenomination": "ether",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "62616c616e6365206973206e6f742030206574686572",
                        "id": 29286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10830:24:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b71b8f78dfd0f046065232a4a950f893c6f17a4f3df0ef1d57952f72ebfd025",
                          "typeString": "literal_string \"balance is not 0 ether\""
                        },
                        "value": "balance is not 0 ether"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b71b8f78dfd0f046065232a4a950f893c6f17a4f3df0ef1d57952f72ebfd025",
                          "typeString": "literal_string \"balance is not 0 ether\""
                        }
                      ],
                      "id": 29279,
                      "name": "assertEq",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1980,
                        2005,
                        2018,
                        2034,
                        2076,
                        2118,
                        2160,
                        2197,
                        2234,
                        2271,
                        320,
                        345,
                        375,
                        400,
                        459,
                        484,
                        514,
                        539,
                        1639,
                        1674
                      ],
                      "referencedDeclaration": 539,
                      "src": "10745:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,string memory)"
                      }
                    },
                    "id": 29287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10745:119:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29288,
                  "nodeType": "ExpressionStatement",
                  "src": "10745:119:27"
                }
              ]
            },
            "functionSelector": "e63bdc2c",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testPostCompletionWindowDistribution",
            "nameLocation": "9759:36:27",
            "parameters": {
              "id": 29166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9795:2:27"
            },
            "returnParameters": {
              "id": 29167,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9805:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29322,
            "nodeType": "FunctionDefinition",
            "src": "10877:402:27",
            "body": {
              "id": 29321,
              "nodeType": "Block",
              "src": "10951:328:27",
              "statements": [
                {
                  "assignments": [
                    29295
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29295,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "10973:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29321,
                      "src": "10961:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 29294,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29293,
                          "name": "PepperStake",
                          "nameLocations": [
                            "10961:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "10961:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "10961:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29298,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 29296,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "10987:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 29297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10987:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10961:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29302,
                        "name": "_supervisor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28118,
                        "src": "11054:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29299,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11040:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29301,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11043:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "11040:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29303,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11040:26:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29304,
                  "nodeType": "ExpressionStatement",
                  "src": "11040:26:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 29310,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "11145:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 29311,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11157:26:27",
                              "memberName": "COMPLETION_WINDOW_NOT_OVER",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26406,
                              "src": "11145:38:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 29312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11184:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "11145:47:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 29308,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "11105:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 29309,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "11109:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "11105:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 29313,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11105:101:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 29305,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11076:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11079:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "11076:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 29314,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11076:140:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29315,
                  "nodeType": "ExpressionStatement",
                  "src": "11076:140:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 29316,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29295,
                        "src": "11226:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 29318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11238:32:27",
                      "memberName": "postCompletionWindowDistribution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27479,
                      "src": "11226:44:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 29319,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11226:46:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29320,
                  "nodeType": "ExpressionStatement",
                  "src": "11226:46:27"
                }
              ]
            },
            "functionSelector": "8d61b56e",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testPostCompletionWindowDistributionReturnWindowNotOver",
            "nameLocation": "10886:55:27",
            "parameters": {
              "id": 29291,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10941:2:27"
            },
            "returnParameters": {
              "id": 29292,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10951:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29365,
            "nodeType": "FunctionDefinition",
            "src": "11285:545:27",
            "body": {
              "id": 29364,
              "nodeType": "Block",
              "src": "11353:477:27",
              "statements": [
                {
                  "assignments": [
                    29327
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29327,
                      "mutability": "mutable",
                      "name": "pepperStake",
                      "nameLocation": "11375:11:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29364,
                      "src": "11363:23:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 29326,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29325,
                          "name": "PepperStake",
                          "nameLocations": [
                            "11363:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "11363:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "11363:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29330,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 29328,
                      "name": "initializePepperstakeContractWithDefaults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28301,
                      "src": "11389:41:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function () returns (contract PepperStake)"
                      }
                    },
                    "id": 29329,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11389:43:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11363:69:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3135",
                        "id": 29334,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11450:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        },
                        "value": "15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1296000_by_1",
                          "typeString": "int_const 1296000"
                        }
                      ],
                      "expression": {
                        "id": 29331,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11442:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29333,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11445:4:27",
                      "memberName": "warp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7997,
                      "src": "11442:7:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 29335,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11442:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29336,
                  "nodeType": "ExpressionStatement",
                  "src": "11442:16:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29340,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "11482:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29337,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11468:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29339,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11471:10:27",
                      "memberName": "startPrank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8043,
                      "src": "11468:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29341,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11468:27:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29342,
                  "nodeType": "ExpressionStatement",
                  "src": "11468:27:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 29343,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29327,
                        "src": "11505:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 29345,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11517:32:27",
                      "memberName": "postCompletionWindowDistribution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27479,
                      "src": "11505:44:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 29346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11505:46:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29347,
                  "nodeType": "ExpressionStatement",
                  "src": "11505:46:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 29353,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "11630:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 29354,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11663:50:27",
                              "memberName": "POST_COMPLETION_WINDOW_DISTRIBUTION_ALREADY_CALLED",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26412,
                              "src": "11630:83:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 29355,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11735:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "11630:113:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 29351,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "11590:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 29352,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "11594:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "11590:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 29356,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11590:167:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 29348,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "11561:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11564:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "11561:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 29357,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11561:206:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29358,
                  "nodeType": "ExpressionStatement",
                  "src": "11561:206:27"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 29359,
                        "name": "pepperStake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29327,
                        "src": "11777:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "id": 29361,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11789:32:27",
                      "memberName": "postCompletionWindowDistribution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27479,
                      "src": "11777:44:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 29362,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11777:46:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29363,
                  "nodeType": "ExpressionStatement",
                  "src": "11777:46:27"
                }
              ]
            },
            "functionSelector": "bff88651",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testPostCompletionWindowDistributionAlreadyCalled",
            "nameLocation": "11294:49:27",
            "parameters": {
              "id": 29323,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11343:2:27"
            },
            "returnParameters": {
              "id": 29324,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11353:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29456,
            "nodeType": "FunctionDefinition",
            "src": "11836:798:27",
            "body": {
              "id": 29455,
              "nodeType": "Block",
              "src": "11879:755:27",
              "statements": [
                {
                  "assignments": [
                    29372
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29372,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "11906:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29455,
                      "src": "11889:29:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29370,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "11889:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 29371,
                        "nodeType": "ArrayTypeName",
                        "src": "11889:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29378,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29376,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11935:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 29375,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "11921:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29373,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "11925:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 29374,
                        "nodeType": "ArrayTypeName",
                        "src": "11925:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 29377,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11921:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11889:48:27"
                },
                {
                  "expression": {
                    "id": 29383,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 29379,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29372,
                        "src": "11947:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 29381,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 29380,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11960:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11947:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 29382,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11965:10:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "11947:28:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 29384,
                  "nodeType": "ExpressionStatement",
                  "src": "11947:28:27"
                },
                {
                  "assignments": [
                    29387
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29387,
                      "mutability": "mutable",
                      "name": "defaultLaunchData",
                      "nameLocation": "12014:17:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29455,
                      "src": "11985:46:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 29386,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29385,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "11985:21:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27730,
                          "src": "11985:21:27"
                        },
                        "referencedDeclaration": 27730,
                        "src": "11985:21:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29423,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29392,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12083:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29391,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12069:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29389,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12073:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29390,
                            "nodeType": "ArrayTypeName",
                            "src": "12073:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12069:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29397,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12113:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29396,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12099:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29394,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12103:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29395,
                            "nodeType": "ArrayTypeName",
                            "src": "12103:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29398,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12099:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29402,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12143:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29401,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12129:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29399,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12133:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29400,
                            "nodeType": "ArrayTypeName",
                            "src": "12133:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29403,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12129:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12173:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12159:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29404,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12163:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29405,
                            "nodeType": "ArrayTypeName",
                            "src": "12163:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29408,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12159:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 29409,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29372,
                        "src": "12189:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 29410,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12215:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "313030",
                        "id": 29411,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12236:3:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 29412,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12253:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 29413,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12272:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 29414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12291:4:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "30",
                        "id": 29415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12309:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29418,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12332:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29417,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12324:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 29416,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "12324:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 29419,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12324:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 29420,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12348:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "",
                        "id": 29421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12363:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 29388,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27730,
                      "src": "12034:21:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$27730_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 29422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12034:341:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11985:390:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29427,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "12394:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29424,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "12385:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29426,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12388:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "12385:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29428,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12385:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29429,
                  "nodeType": "ExpressionStatement",
                  "src": "12385:22:27"
                },
                {
                  "assignments": [
                    29432
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29432,
                      "mutability": "mutable",
                      "name": "pepperStakeParticipateOnCreate",
                      "nameLocation": "12429:30:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29455,
                      "src": "12417:42:27",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PepperStake_$27480",
                        "typeString": "contract PepperStake"
                      },
                      "typeName": {
                        "id": 29431,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29430,
                          "name": "PepperStake",
                          "nameLocations": [
                            "12417:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "12417:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "12417:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29446,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29438,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12519:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 29439,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29387,
                        "src": "12522:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 29440,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12541:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29443,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12552:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12544:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 29441,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "12544:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 29444,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12544:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 29435,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "12462:15:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                          "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                        },
                        "typeName": {
                          "id": 29434,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 29433,
                            "name": "PepperStake",
                            "nameLocations": [
                              "12466:11:27"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 27480,
                            "src": "12466:11:27"
                          },
                          "referencedDeclaration": 27480,
                          "src": "12466:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        }
                      },
                      "id": 29437,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3035",
                          "id": 29436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12498:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_50000000000000000_by_1",
                            "typeString": "int_const 50000000000000000"
                          },
                          "value": "0.05"
                        }
                      ],
                      "src": "12462:56:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$value",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      }
                    },
                    "id": 29445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12462:93:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12417:138:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 29452,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 29448,
                              "name": "pepperStakeParticipateOnCreate",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 29432,
                              "src": "12572:30:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_PepperStake_$27480",
                                "typeString": "contract PepperStake"
                              }
                            },
                            "id": 29449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "12603:16:27",
                            "memberName": "participantCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 26473,
                            "src": "12572:47:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 29450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12572:49:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 29451,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12625:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "12572:54:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 29447,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "12565:6:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 29453,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12565:62:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29454,
                  "nodeType": "ExpressionStatement",
                  "src": "12565:62:27"
                }
              ]
            },
            "functionSelector": "4c504632",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testCreatorParticipation",
            "nameLocation": "11845:24:27",
            "parameters": {
              "id": 29366,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11869:2:27"
            },
            "returnParameters": {
              "id": 29367,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11879:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29578,
            "nodeType": "FunctionDefinition",
            "src": "12640:1023:27",
            "body": {
              "id": 29577,
              "nodeType": "Block",
              "src": "12702:961:27",
              "statements": [
                {
                  "assignments": [
                    29463
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29463,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "12729:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29577,
                      "src": "12712:29:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29461,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12712:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 29462,
                        "nodeType": "ArrayTypeName",
                        "src": "12712:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29469,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29467,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12758:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 29466,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "12744:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29464,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12748:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 29465,
                        "nodeType": "ArrayTypeName",
                        "src": "12748:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 29468,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12744:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12712:48:27"
                },
                {
                  "expression": {
                    "id": 29474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 29470,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29463,
                        "src": "12770:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 29472,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 29471,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12783:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12770:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e31",
                      "id": 29473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12788:9:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_100000000000000000_by_1",
                        "typeString": "int_const 100000000000000000"
                      },
                      "value": "0.1"
                    },
                    "src": "12770:27:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 29475,
                  "nodeType": "ExpressionStatement",
                  "src": "12770:27:27"
                },
                {
                  "assignments": [
                    29478
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29478,
                      "mutability": "mutable",
                      "name": "defaultLaunchData",
                      "nameLocation": "12837:17:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29577,
                      "src": "12808:46:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 29477,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29476,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "12808:21:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27730,
                          "src": "12808:21:27"
                        },
                        "referencedDeclaration": 27730,
                        "src": "12808:21:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29514,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29483,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12906:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29482,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12892:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29480,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12896:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29481,
                            "nodeType": "ArrayTypeName",
                            "src": "12896:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12892:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12936:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29487,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12922:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29485,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12926:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29486,
                            "nodeType": "ArrayTypeName",
                            "src": "12926:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29489,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12922:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29493,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12966:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29492,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12952:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29490,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12956:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29491,
                            "nodeType": "ArrayTypeName",
                            "src": "12956:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29494,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12952:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29498,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12996:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "12982:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29495,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "12986:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29496,
                            "nodeType": "ArrayTypeName",
                            "src": "12986:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12982:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 29500,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29463,
                        "src": "13012:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 29501,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13038:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "313030",
                        "id": 29502,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13059:3:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 29503,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13076:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 29504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13095:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 29505,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13114:4:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "hexValue": "30",
                        "id": 29506,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13132:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29509,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13155:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29508,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13147:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 29507,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "13147:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 29510,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13147:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 29511,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13171:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "",
                        "id": 29512,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13186:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 29479,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27730,
                      "src": "12857:21:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$27730_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 29513,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12857:341:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12808:390:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29518,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "13217:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29515,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "13208:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29517,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13211:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "13208:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29519,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13208:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29520,
                  "nodeType": "ExpressionStatement",
                  "src": "13208:22:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 29526,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "13292:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 29527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13304:22:27",
                              "memberName": "INCORRECT_STAKE_AMOUNT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26398,
                              "src": "13292:34:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 29528,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13327:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "13292:43:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 29524,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "13269:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 29525,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "13273:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "13269:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 29529,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13269:67:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 29521,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "13240:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29523,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13243:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "13240:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 29530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13240:106:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29531,
                  "nodeType": "ExpressionStatement",
                  "src": "13240:106:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13390:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 29538,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29478,
                        "src": "13393:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 29539,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13412:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29542,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13423:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29541,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13415:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 29540,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "13415:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 29543,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13415:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 29534,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "13356:15:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                          "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                        },
                        "typeName": {
                          "id": 29533,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 29532,
                            "name": "PepperStake",
                            "nameLocations": [
                              "13360:11:27"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 27480,
                            "src": "13360:11:27"
                          },
                          "referencedDeclaration": 27480,
                          "src": "13360:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        }
                      },
                      "id": 29536,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e35",
                          "id": 29535,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13379:9:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_500000000000000000_by_1",
                            "typeString": "int_const 500000000000000000"
                          },
                          "value": "0.5"
                        }
                      ],
                      "src": "13356:33:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$value",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      }
                    },
                    "id": 29544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13356:70:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "id": 29545,
                  "nodeType": "ExpressionStatement",
                  "src": "13356:70:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 29549,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28085,
                        "src": "13446:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 29546,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "13437:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13440:5:27",
                      "memberName": "prank",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8038,
                      "src": "13437:8:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 29550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13437:22:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29551,
                  "nodeType": "ExpressionStatement",
                  "src": "13437:22:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 29557,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "13521:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 29558,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13533:22:27",
                              "memberName": "INCORRECT_STAKE_AMOUNT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26398,
                              "src": "13521:34:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 29559,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13556:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "13521:43:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 29555,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "13498:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 29556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "13502:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "13498:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 29560,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13498:67:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 29552,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "13469:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29554,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13472:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "13469:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 29561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13469:106:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29562,
                  "nodeType": "ExpressionStatement",
                  "src": "13469:106:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13620:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 29569,
                        "name": "defaultLaunchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29478,
                        "src": "13623:17:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 29570,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13642:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29573,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13653:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29572,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13645:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 29571,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "13645:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 29574,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13645:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          {
                            "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                            "typeString": "struct LaunchPepperStakeData memory"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 29565,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "13585:15:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                          "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                        },
                        "typeName": {
                          "id": 29564,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 29563,
                            "name": "PepperStake",
                            "nameLocations": [
                              "13589:11:27"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 27480,
                            "src": "13589:11:27"
                          },
                          "referencedDeclaration": 27480,
                          "src": "13589:11:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PepperStake_$27480",
                            "typeString": "contract PepperStake"
                          }
                        }
                      },
                      "id": 29567,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "hexValue": "302e3135",
                          "id": 29566,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13608:10:27",
                          "subdenomination": "ether",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_150000000000000000_by_1",
                            "typeString": "int_const 150000000000000000"
                          },
                          "value": "0.15"
                        }
                      ],
                      "src": "13585:34:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$value",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      }
                    },
                    "id": 29575,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13585:71:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "id": 29576,
                  "nodeType": "ExpressionStatement",
                  "src": "13585:71:27"
                }
              ]
            },
            "functionSelector": "fdb5d2db",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testCreatorParticipationWithIncorrectAmount",
            "nameLocation": "12649:43:27",
            "parameters": {
              "id": 29457,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12692:2:27"
            },
            "returnParameters": {
              "id": 29458,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12702:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 29726,
            "nodeType": "FunctionDefinition",
            "src": "13669:1341:27",
            "body": {
              "id": 29725,
              "nodeType": "Block",
              "src": "13715:1295:27",
              "statements": [
                {
                  "assignments": [
                    29585
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29585,
                      "mutability": "mutable",
                      "name": "stakingTiers",
                      "nameLocation": "13742:12:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29725,
                      "src": "13725:29:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29583,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "13725:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 29584,
                        "nodeType": "ArrayTypeName",
                        "src": "13725:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29591,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29589,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13771:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "id": 29588,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "13757:13:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 29586,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "13761:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 29587,
                        "nodeType": "ArrayTypeName",
                        "src": "13761:9:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 29590,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13757:16:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13725:48:27"
                },
                {
                  "expression": {
                    "id": 29596,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 29592,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29585,
                        "src": "13783:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 29594,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 29593,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13796:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "13783:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "302e3035",
                      "id": 29595,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13801:10:27",
                      "subdenomination": "ether",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_50000000000000000_by_1",
                        "typeString": "int_const 50000000000000000"
                      },
                      "value": "0.05"
                    },
                    "src": "13783:28:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 29597,
                  "nodeType": "ExpressionStatement",
                  "src": "13783:28:27"
                },
                {
                  "assignments": [
                    29600
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 29600,
                      "mutability": "mutable",
                      "name": "launchData",
                      "nameLocation": "13850:10:27",
                      "nodeType": "VariableDeclaration",
                      "scope": 29725,
                      "src": "13821:39:27",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData"
                      },
                      "typeName": {
                        "id": 29599,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29598,
                          "name": "LaunchPepperStakeData",
                          "nameLocations": [
                            "13821:21:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27730,
                          "src": "13821:21:27"
                        },
                        "referencedDeclaration": 27730,
                        "src": "13821:21:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_storage_ptr",
                          "typeString": "struct LaunchPepperStakeData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 29638,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29605,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13912:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29604,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "13898:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29602,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13902:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29603,
                            "nodeType": "ArrayTypeName",
                            "src": "13902:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13898:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29610,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13942:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29609,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "13928:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29607,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13932:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29608,
                            "nodeType": "ArrayTypeName",
                            "src": "13932:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29611,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13928:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29615,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13972:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29614,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "13958:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29612,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13962:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29613,
                            "nodeType": "ArrayTypeName",
                            "src": "13962:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29616,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13958:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29620,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14002:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29619,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "13988:13:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (address[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 29617,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13992:7:27",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 29618,
                            "nodeType": "ArrayTypeName",
                            "src": "13992:9:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                              "typeString": "address[]"
                            }
                          }
                        },
                        "id": 29621,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13988:16:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 29622,
                        "name": "stakingTiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29585,
                        "src": "14018:12:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "hexValue": "3134",
                        "id": 29623,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14044:7:27",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        "value": "14"
                      },
                      {
                        "hexValue": "313030",
                        "id": 29624,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14065:3:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 29625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14082:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 29626,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14101:5:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "hexValue": "74727565",
                        "id": 29627,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14120:4:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 29630,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 29628,
                          "name": "MAX_FEE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28181,
                          "src": "14138:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 29629,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14148:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "14138:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29633,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14171:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29632,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "14163:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 29631,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "14163:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 29634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14163:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 29635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14187:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "hexValue": "",
                        "id": 29636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14202:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_rational_1209600_by_1",
                          "typeString": "int_const 1209600"
                        },
                        {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        }
                      ],
                      "id": 29601,
                      "name": "LaunchPepperStakeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27730,
                      "src": "13863:21:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$27730_storage_ptr_$",
                        "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                      }
                    },
                    "id": 29637,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13863:351:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13821:393:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 29644,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "14294:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 29645,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14306:27:27",
                              "memberName": "FEE_SUM_EXCEEDS_100_PERCENT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26416,
                              "src": "14294:39:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 29646,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14334:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "14294:48:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 29642,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "14254:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 29643,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "14258:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "14254:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 29647,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14254:102:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 29639,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "14225:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29641,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14228:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "14225:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 29648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14225:141:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29649,
                  "nodeType": "ExpressionStatement",
                  "src": "14225:141:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29653,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14392:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 29654,
                        "name": "launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29600,
                        "src": "14395:10:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 29655,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14407:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29658,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14418:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29657,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "14410:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 29656,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "14410:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 29659,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14410:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 29652,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "14376:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 29651,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29650,
                          "name": "PepperStake",
                          "nameLocations": [
                            "14380:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "14380:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "14380:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 29660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14376:45:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "id": 29661,
                  "nodeType": "ExpressionStatement",
                  "src": "14376:45:27"
                },
                {
                  "expression": {
                    "id": 29698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 29662,
                      "name": "launchData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 29600,
                      "src": "14432:10:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 29667,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14494:1:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 29666,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "14480:13:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 29664,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "14484:7:27",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 29665,
                              "nodeType": "ArrayTypeName",
                              "src": "14484:9:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 29668,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14480:16:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 29672,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14524:1:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 29671,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "14510:13:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 29669,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "14514:7:27",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 29670,
                              "nodeType": "ArrayTypeName",
                              "src": "14514:9:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 29673,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14510:16:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 29677,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14554:1:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 29676,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "14540:13:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 29674,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "14544:7:27",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 29675,
                              "nodeType": "ArrayTypeName",
                              "src": "14544:9:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 29678,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14540:16:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 29682,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14584:1:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 29681,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "14570:13:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 29679,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "14574:7:27",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 29680,
                              "nodeType": "ArrayTypeName",
                              "src": "14574:9:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 29683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14570:16:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        {
                          "id": 29684,
                          "name": "stakingTiers",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29585,
                          "src": "14600:12:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        {
                          "hexValue": "3134",
                          "id": 29685,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14626:7:27",
                          "subdenomination": "days",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1209600_by_1",
                            "typeString": "int_const 1209600"
                          },
                          "value": "14"
                        },
                        {
                          "hexValue": "313030",
                          "id": 29686,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14647:3:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_100_by_1",
                            "typeString": "int_const 100"
                          },
                          "value": "100"
                        },
                        {
                          "hexValue": "66616c7365",
                          "id": 29687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14664:5:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        {
                          "hexValue": "66616c7365",
                          "id": 29688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14683:5:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        {
                          "hexValue": "74727565",
                          "id": 29689,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14702:4:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "hexValue": "30",
                          "id": 29690,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14720:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 29693,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14743:1:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 29692,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "14735:7:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 29691,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "14735:7:27",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 29694,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14735:10:27",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "hexValue": "30",
                          "id": 29695,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14759:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        {
                          "hexValue": "",
                          "id": 29696,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14774:2:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                            "typeString": "literal_string \"\""
                          },
                          "value": ""
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          },
                          {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          },
                          {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          },
                          {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          },
                          {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          },
                          {
                            "typeIdentifier": "t_rational_1209600_by_1",
                            "typeString": "int_const 1209600"
                          },
                          {
                            "typeIdentifier": "t_rational_100_by_1",
                            "typeString": "int_const 100"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          {
                            "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                            "typeString": "literal_string \"\""
                          }
                        ],
                        "id": 29663,
                        "name": "LaunchPepperStakeData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27730,
                        "src": "14445:21:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_LaunchPepperStakeData_$27730_storage_ptr_$",
                          "typeString": "type(struct LaunchPepperStakeData storage pointer)"
                        }
                      },
                      "id": 29697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14445:341:27",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                        "typeString": "struct LaunchPepperStakeData memory"
                      }
                    },
                    "src": "14432:354:27",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                      "typeString": "struct LaunchPepperStakeData memory"
                    }
                  },
                  "id": 29699,
                  "nodeType": "ExpressionStatement",
                  "src": "14432:354:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 29705,
                                "name": "PepperStake",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27480,
                                "src": "14866:11:27",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_PepperStake_$27480_$",
                                  "typeString": "type(contract PepperStake)"
                                }
                              },
                              "id": 29706,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14878:27:27",
                              "memberName": "FEE_SUM_EXCEEDS_100_PERCENT",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26416,
                              "src": "14866:39:27",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 29707,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14906:8:27",
                            "memberName": "selector",
                            "nodeType": "MemberAccess",
                            "src": "14866:48:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 29703,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "14826:3:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 29704,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "14830:18:27",
                          "memberName": "encodeWithSelector",
                          "nodeType": "MemberAccess",
                          "src": "14826:22:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes4) pure returns (bytes memory)"
                          }
                        },
                        "id": 29708,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14826:102:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 29700,
                        "name": "vm",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1817,
                        "src": "14797:2:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vm_$8315",
                          "typeString": "contract Vm"
                        }
                      },
                      "id": 29702,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14800:12:27",
                      "memberName": "expectRevert",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8079,
                      "src": "14797:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes memory) external"
                      }
                    },
                    "id": 29709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14797:141:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 29710,
                  "nodeType": "ExpressionStatement",
                  "src": "14797:141:27"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "31",
                        "id": 29714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14964:1:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      {
                        "id": 29715,
                        "name": "launchData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29600,
                        "src": "14967:10:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 29718,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 29716,
                          "name": "MAX_FEE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28181,
                          "src": "14979:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 29717,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14989:1:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "14979:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 29721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15000:1:27",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 29720,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "14992:7:27",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 29719,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "14992:7:27",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 29722,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14992:10:27",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        {
                          "typeIdentifier": "t_struct$_LaunchPepperStakeData_$27730_memory_ptr",
                          "typeString": "struct LaunchPepperStakeData memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 29713,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "14948:15:27",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_uint256_$_t_struct$_LaunchPepperStakeData_$27730_memory_ptr_$_t_uint256_$_t_address_$returns$_t_contract$_PepperStake_$27480_$",
                        "typeString": "function (uint256,struct LaunchPepperStakeData memory,uint256,address) payable returns (contract PepperStake)"
                      },
                      "typeName": {
                        "id": 29712,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 29711,
                          "name": "PepperStake",
                          "nameLocations": [
                            "14952:11:27"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27480,
                          "src": "14952:11:27"
                        },
                        "referencedDeclaration": 27480,
                        "src": "14952:11:27",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PepperStake_$27480",
                          "typeString": "contract PepperStake"
                        }
                      }
                    },
                    "id": 29723,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14948:55:27",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PepperStake_$27480",
                      "typeString": "contract PepperStake"
                    }
                  },
                  "id": 29724,
                  "nodeType": "ExpressionStatement",
                  "src": "14948:55:27"
                }
              ]
            },
            "functionSelector": "69ded122",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testFeeSumExceeds100Percent",
            "nameLocation": "13678:27:27",
            "parameters": {
              "id": 29579,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13705:2:27"
            },
            "returnParameters": {
              "id": 29580,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13715:0:27"
            },
            "scope": 29727,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 28073,
              "name": "Test",
              "nameLocations": [
                "207:4:27"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 7532,
              "src": "207:4:27"
            },
            "id": 28074,
            "nodeType": "InheritanceSpecifier",
            "src": "207:4:27"
          }
        ],
        "canonicalName": "PepperStakeTest",
        "contractDependencies": [
          27480
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          29727,
          7532,
          7501,
          5073,
          4684,
          2677,
          1786,
          7521,
          1818
        ],
        "name": "PepperStakeTest",
        "nameLocation": "188:15:27",
        "scope": 29728,
        "usedErrors": []
      }
    ],
    "license": "UNLICENSED"
  },
  "id": 27
}